急问: SQL SERVER 数据库 从 rtf格式字符串 字段中模糊查找包含 某几个字符 的记录,如何处理?关键是这 某几个字符 不好处理成 rtf 格式.
语言:VC.net
C#.net谢谢.
语言:VC.net
C#.net谢谢.
解决方案 »
- 请各位前辈帮小弟看看代码。新手紧急求救啊!!
- C#全局消息钩子 全局钩子问题
- 用华为SMEIDll.dll发送短信,用IFInitInterface初始化成功,登录失败
- Winform中 DataGird排序后行定位问题(waiting online)
- 请问下sourcesafe的admin的密码是 什么啊
- 关于asp.net快速入门自带的个性化门户(界面问题)
- 求教大家一个关于操作图片数组的问题
- 谁有C#做usb和刷卡的接口文档资料
- 菜鸟问题:public SqlProcedure() : this("")是什么意思??
- 如何利用C#实现JScript中eval()的功能?
- 网络通讯可靠性怎么保证?
- SSL安全证书问题 高手进
中国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的内容,一个字段存放纯文本,后一个字段纯是为了查询用,至于这两个字段放在同一个表还是分两个表,自己看情况决定
我的要求不高,只要能把
-----------
中国ABC
RTF编码是
\'d6\'d0\'b9\'faABC
--------------
转换成功即可,因为这个字段内容没有字体变换,可以不用考虑。
应该有更好的转换方法
下面的你凑合着用用
//采用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 );
}
}