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 字符串类型。
我导入了一个包含阿拉伯字符但显示为问号的数据库。通过一些搜索,我发现列数据类型应该是 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 字符串类型。