Microsoft SQL Server数据库字符转换

时间:2015-02-22 07:52:35

标签: sql-server database unicode character-encoding

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

2 个答案:

答案 0 :(得分:0)

您需要不同的整理。

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

答案 1 :(得分:0)

您不能简单地将数据类型更改为nvarchar - 因为数据类型已被“销毁”而无法将数据带回[&#34}。通过转换为非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字符串类型。