删除SQL Server ntext列中的表情符号或笑脸字符?

时间:2017-06-08 06:25:12

标签: sql-server sql-server-2008

我有一个移动聊天对话文本区域,它存储在SQL Server 2008中的ntext数据类型中。我正逐个字符地进行处理。我需要做一些我不知道的事情来传递这些表情符号字符。我应该消除它们或整理到不同的排序规则或编码到不同的字符集。我的表格整理类型为Latin1_General_CI_AS。我需要这样的东西:

IF(SUBSTRING(@chat_Conversation, @i, 1) = 'Emoji')
    CONTINUE;

1 个答案:

答案 0 :(得分:1)

首先猜测我建议在你的文字

前放置一个N

比较结果:

SELECT  ''
      ,N'';

结果

ExtASCII    Unicode
??          

如果没有N文字被读为扩展ASCII ,则未知字符将作为问号返回。使用N,您正在处理UNICODE(确切地说:UCS-2)...

更新

正如评论中所指出:请勿使用NTEXT

几个世纪以来,

NTEXTTEXTIMAGE已被弃用!将来的版本不支持这些类型!

将您的所有工作(列,变量......)转换为

  • NTEXT - > NVARCHAR(MAX)(涵盖UCS-2个字符)
  • TEXT - > VARCHAR(MAX)(涵盖扩展的ASCII,取决于COLLATION代码页
  • IMAGE - > VARBINARY(MAX)(涵盖BLOBs

提示

如果您正在处理特殊字符(如外国字母或表情符号),则应始终使用N与文字和类型...