急问: SQL SERVER 数据库 从 rtf格式字符串 字段中模糊查找包含 某几个字符 的记录

hmh780210 2009-11-27 03:16:33
急问: SQL SERVER 数据库 从 rtf格式字符串 字段中模糊查找包含 某几个字符 的记录,如何处理?关键是这 某几个字符 不好处理成 rtf 格式.
语言:VC.net
C#.net

谢谢.
...全文
201 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
特别 2009-11-28
  • 打赏
  • 举报
回复
楼主再查查RTF编码
应该有更好的转换方法
下面的你凑合着用用


//采用GB2312编码
System.Text.Encoding gb = System.Text.Encoding.GetEncoding( "gb2312" );
string str = "中国ABC"; //要转换的内容
StringBuilder sb = new StringBuilder(); //转换后的内容 sb.ToString()

byte[] b;
foreach ( char item in str )
{
if ( item > 255 )
{
//双字节字符
b = gb.GetBytes( item.ToString() );
sb.Append( string.Format( "\\\'{0:x2}\\\'{1:x2}", b[0], b[1] ) );
}
else
{
//单字节字符
sb.Append( item );
}
}
hmh780210 2009-11-28
  • 打赏
  • 举报
回复
只要能转换成RTF的编码就行。单独为查询而增加一个表,不是最佳方法。
hmh780210 2009-11-28
  • 打赏
  • 举报
回复
感谢美羊羊!
我的要求不高,只要能把
-----------
中国ABC
RTF编码是
\'d6\'d0\'b9\'faABC
--------------
转换成功即可,因为这个字段内容没有字体变换,可以不用考虑。
特别 2009-11-27
  • 打赏
  • 举报
回复
不知道咋办,单独对查询的文字进行RTF编码的话,也不行,因为RTF文档是带格式的,勉强查询出来精确度也不高

例如
中国ABC
如果没有应用格式的话,其RTF编码是
\'d6\'d0\'b9\'faABC
你如果模糊查找的时候可以使用 field LIKE '%\'d6\'d0\'b9\'faABC%'
但是,如果给“中国”两上字设国红色加粗,“ABC”三个字设为蓝色倾斜的话,其RTF编码是
\b\'d6\'d0\'b9\'fa\cf2\b0\i ABC\cf0\i0
此时如果仍然使用单纯地不带格式的字符RTF编码的话,显示是查不出来的

这种情况,我一般做法是用两个字段,一个字段存放RTF的内容,一个字段存放纯文本,后一个字段纯是为了查询用,至于这两个字段放在同一个表还是分两个表,自己看情况决定
qibao33 2009-11-27
  • 打赏
  • 举报
回复
帮顶
bdmh 2009-11-27
  • 打赏
  • 举报
回复
不是like吗

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧