科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道在SQL Server2000中处理半个汉字的问题(1)

在SQL Server2000中处理半个汉字的问题(1)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

由于从其它数据库中导入的数据存在半个汉字的问题,所以希望能在查询语句中将这半个汉字处理掉,请问怎样才能解决这个问题?

作者:yangguo 来源:赛迪网 2007年8月25日

关键字: 半个汉字 SQL Server SQL Server 2000

  • 评论
  • 分享微博
  • 分享邮件
 

问:由于从其它数据库中导入的数据存在半个汉字的问题,所以希望能在查询语句中将这半个汉字处理掉,请问怎样才能解决这个问题?

答:“汉字是由两个字节存储的,每个字节的数值都>127。所以上面问题的解决方案就是:把字符串按字节顺序截取,当出现第一个字节是>127,但是后面一个字节是<127的这种情况,选择丢掉。

接下来,我们来明确技术细节:

(1) 在SQL Server中有很多字符串相关的操作函数,但是直接去操作包含了汉字的字符串,会有点问题。说明如下:LEN计算长度的时候,会把汉字和英文字符都看成长度一样的;substring也是这样,ascii是返回第一个字节的ASCII 码。

Example:

select len('你好a'),
substring('你好a',1,1),ascii('你')

结果是

                             

-----------       ---- -       ----
3           你          196

一定要把字符串要转换成varbinary来处理,才可以。

(2) SQL Server中,如何把ASCII码组合成汉字,就是把高字节和底字节分别转成字符再拼接起来。如char(210)+char(166)就是姚这个汉字。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章