SQL Server,varchar 数据到 nvarchar 数据

发布于 2024-08-31 13:38:59 字数 297 浏览 6 评论 0原文

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

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

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

I've got a database with collation Danish_Norwegian_CS_AS and lots of varchar columns. I'd like to convert all this data to unicode, but haven't found a way to convert this data yet. If I've understood correctly, the encoding used is UCS-2 little endian.

For example I've got a column containing 'PÃ¥l-Trygve' which is easily converted with C# to 'Pål-Trygve' using Encoding.Default.GetString(Encoding.UTF8.GetBytes("PÃ¥l-Trygve"));

Is there a way to do this conversion in the Microsoft SQL Server client?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

翻身的咸鱼 2024-09-07 13:38:59

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

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

Could you just use the CONVERT statement - or am I missing a nuance here?

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

入怼 2024-09-07 13:38:59

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

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

insert into mytable
values (N'PÃ¥l-Trygve',...)

In sql server if you put a N character before your favorite statement, it convert to unicode.
for example:

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

or

insert into mytable
values (N'PÃ¥l-Trygve',...)
海拔太高太耀眼 2024-09-07 13:38:59

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

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

In your comment to Sam's answer you said "data in the varchar column is the binary code for an ucs2 little endian string and not ascii.". Which differs from what said in the question, where you have text.

So, I'd create a whole set of parallel tables (with nvarchar columns) and load them via some c# code. Then drop, rename etc. This isn't something to do easily in t-sql

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文