1

我有一个带有排序规则 Danish_Norwegian_CS_AS 和许多 varchar 列的数据库。我想将所有这些数据转换为 unicode,但还没有找到转换这些数据的方法。如果我理解正确的话,使用的编码是 UCS-2 little endian。

例如,我有一个包含“PÃ¥l-Trygve”的列,它可以使用 C# 轻松转换为“Pål-Trygve”,使用 Encoding.Default.GetString(Encoding.UTF8.GetBytes("PÃ¥l-Trygve")) ;

有没有办法在 Microsoft SQL Server 客户端中进行这种转换?

4

3 回答 3

0

您可以只使用 CONVERT 语句 - 还是我在这里遗漏了细微差别?

来自http://msdn.microsoft.com/en-us/library/ms187928.aspx

于 2010-05-10T17:29:12.960 回答
0

在您对 Sam 的回答的评论中,您说“varchar 列中的数据是 ucs2 little endian 字符串的二进制代码,而不是 ascii。”。这与问题中所说的不同,你有文字。

因此,我将创建一整套并行表(带有 nvarchar 列)并通过一些 c# 代码加载它们。然后删除,重命名等。这在 t-sql 中不容易做到

于 2010-05-16T13:37:43.777 回答
0

在 sql server 中,如果你在你喜欢的语句前加上一个 N 字符,它会转换为 unicode。例如:

update mytable
set mycol = N'PÃ¥l-Trygve'

或者

insert into mytable
values (N'PÃ¥l-Trygve',...)
于 2010-05-11T07:24:28.077 回答