有机会从varchar列恢复unicode数据

时间:2012-09-28 11:42:03

标签: sql sql-server-2005

Unicode数据(西里尔文)被写入varchar

类型的数据库列

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

它不必完全恢复,任何事情都会很棒

感谢您的帮助

1 个答案:

答案 0 :(得分:4)

没有

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

无法逆向工程回溯?最初应该表示的内容或者在此过程中可能发生的任何其他不太严重的转换(例如,字符转换为有点类似的同音字符)。

实施例

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

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

输出

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

您可以清楚地看到源中的所有不同字符都存储为相同的内容。