Microsoft SQL 服务器数据库字符转换

Microsoft SQL Server database character conversion

我导入了一个包含阿拉伯字符但显示为问号的数据库。通过一些搜索,我发现列数据类型应该是 nvarchar 以支持 unicode(它们是 varchar)。我将包含这些字符的列之一更改为 nvarchar,但数据仍显示为“??”。如何将现有值更改为unicode并正确显示?

您需要不同的排序规则。

在此处阅读更多内容:https://msdn.microsoft.com/en-us/library/ms143508.aspx

您不能简单地将数据类型更改为 nvarchar - 因为它已经 "destroyed" 转换为非 Unicode 格式,所以不会恢复数据。

您需要使用 nvarchar 然后您需要以不将其转换回 ANSI 代码的方式 插入 (或更新)数据.

如果您使用 T-SQL 插入该 Unicode 代码,请确保使用 N'...' 前缀:

INSERT INTO dbo.YourTable(NvarcharCol)
VALUES (N'nvarchar-value')

从 C# 或 PHP 或 Ruby 等前端语言中,确保使用 Unicode 字符串 - .NET(C# 和 VB.NET)会自动执行此操作。使用带参数的查询时,请确保为这些相关参数指定 Unicode 字符串类型。