我需要在我的数据库中插入中文字符,但它总是显示???? ..
示例:
插入此记录。
微波室外单元 - 苹果
然后它变成了???
结果:
?????? - 苹果
我真的需要帮助......谢谢你。
我正在使用MSSQL Server 2008
答案 0 :(得分:15)
确保在插入时使用大写N指定unicode字符串:
INSERT INTO Table1 (Col1) SELECT N'微波室外单元-Apple' AS [Col1]
并且Table1(Col1)是NVARCHAR数据类型。
答案 1 :(得分:6)
确保您要插入的列是 nchar , nvarchar 或 ntext 。如果将Unicode字符串插入ANSI列,则实际上会在数据中出现问号。
另外,请小心检查当您将数据拉回来时,您不仅会看到客户端显示问题,而且实际上会收到问号:
SELECT Unicode(YourColumn), YourColumn FROM YourTable
请注意,Unicode函数仅返回字符串中 first 字符的代码。
一旦您确定该列是否确实正确存储了数据,请回复,我们会为您提供更多帮助。
答案 2 :(得分:3)
尝试将适当的语言添加到Windows区域设置中。您必须确保将开发计算机设置为以适当的语言显示非Unicode字符。 当然,你需要将NVarchar用于外语领域
答案 3 :(得分:0)
确保已将数据库的编码设置为支持这些字符的编码。 UTF-8是事实上的编码,因为它兼容ASCII,但支持所有1114111 Unicode代码点。
答案 4 :(得分:-1)
SELECT 'UPDATE table SET msg=UNISTR('''||ASCIISTR(msg)||''') WHERE id='''||id||''' FROM table WHERE id= '123344556' ;