2

Unicode 数据(西里尔文)被写入类型的数据库列varchar

有没有机会以正确的格式恢复该数据?

不必完全恢复,一切都会好起来的

谢谢你的帮助

4

1 回答 1

5

不。

这是一种有损转换,因为双字节字符不可能全部用单字节方案表示。所有不能强制转换为默认排序规则代码页的字符都将转换为?.

没有办法对?最初应该表示的内容或沿途可能发生的任何其他不太严重的转换进行逆向工程(例如,将字符转换为有点相似的同形文字字符)。

例子

DECLARE @T TABLE 
(
V VARCHAR(10)
)
INSERT INTO @T 
VALUES (N'中华人民共和国');

SELECT V,
       CAST(V AS VARBINARY(10))
FROM @T

输出

V          
---------- ----------------------
???????    0x3F3F3F3F3F3F3F

您可以清楚地看到源中的所有不同字符都存储为同一事物。

于 2012-09-28T11:44:18.303 回答