我有一个数据库,其中包含colish Danish_Norwegian_CS_AS和许多varchar列。我想将所有这些数据转换为unicode,但尚未找到转换此数据的方法。如果我理解正确,使用的编码是UCS-2 little endian。
例如,我有一个包含'PÃ¥l-Trygve'的列,可以使用Encoding.Default.GetString(Encale.UTF8.GetBytes(“PÃ¥l-Trygve”)使用C#轻松转换为'Pål-Trygve' “));
有没有办法在Microsoft SQL Server客户端中执行此转换?
答案 0 :(得分:0)
你能使用CONVERT语句吗?或者我在这里错过了细微差别?
答案 1 :(得分:0)
在sql server中,如果你在你喜欢的语句之前放了一个N字符,它会转换为unicode。 例如:
update mytable
set mycol = N'PÃ¥l-Trygve'
或
insert into mytable
values (N'PÃ¥l-Trygve',...)
答案 2 :(得分:0)
在您对Sam的回答的评论中,您说“varchar列中的数据是ucs2小端字符串的二进制代码,而不是ascii。”。这与你在哪里有文字的问题所说的不同。
所以,我创建了一整套并行表(带有nvarchar列)并通过一些c#代码加载它们。然后删除,重命名等。这在t-sql
中并不容易