我在SQL Server中含有需要包含Unicode数据的列的数据库(它包含了来自世界各地如القاهرة开罗用户的地址)如何恢复显示在SQL Server中的Unicode数据?
此列是数据库默认的排序规则的nvarchar列(Latin1_General_CI_AS),但我注意到通过包含非英文字符的SQL语句插入到其中的数据,并显示为?????。
解决方案似乎是,我没有使用n前缀,例如
INSERT INTO table (address) VALUES ('القاهرة')
相反的:
INSERT INTO table (address) VALUES (n'القاهرة')
我的印象是,统一将自动转换为nvarchar列,我并不需要这个前缀下,但是这似乎是不正确的。
问题是我仍然有一些数据在这个列中显示为?????在SQL Server Management Studio中,我不知道它是什么!
数据是否仍然存在,但字符编码不正确,无法显示,但仍然可挽救(如果有的话,我该如何恢复它?),还是消失了?
感谢,
汤姆
单词显示与SSMS完全相同:“??????”。在我正确插入unicode数据的其他表中,我确实看到了阿拉伯字符。 – Loftx 2010-02-11 17:33:43
然后,你可能运气不好 – SQLMenace 2010-02-11 17:37:16
我不得不+1,1 SQLMenace的评论..因为这是我认为是不幸的答案是Loftx的问题... – Sung 2010-02-11 17:58:22