我有一个移动聊天对话文本区域,它存储在SQL Server 2008中的ntext
数据类型中。我正逐个字符地进行处理。我需要做一些我不知道的事情来传递这些表情符号字符。我应该消除它们或整理到不同的排序规则或编码到不同的字符集。我的表格整理类型为Latin1_General_CI_AS
。我需要这样的东西:
IF(SUBSTRING(@chat_Conversation, @i, 1) = 'Emoji')
CONTINUE;
答案 0 :(得分:1)
首先猜测我建议在你的文字
前放置一个N
比较结果:
SELECT ''
,N'';
结果
ExtASCII Unicode
??
如果没有N
文字被读为扩展ASCII ,则未知字符将作为问号返回。使用N
,您正在处理UNICODE
(确切地说:UCS-2
)...
正如评论中所指出:请勿使用NTEXT
!
NTEXT
,TEXT
和IMAGE
已被弃用!将来的版本不支持这些类型!
将您的所有工作(列,变量......)转换为
NTEXT
- > NVARCHAR(MAX)
(涵盖UCS-2
个字符)TEXT
- > VARCHAR(MAX)
(涵盖扩展的ASCII,取决于COLLATION
和代码页)IMAGE
- > VARBINARY(MAX)
(涵盖BLOBs
)如果您正在处理特殊字符(如外国字母或表情符号),则应始终使用N
与文字和类型...