从SQL Server数据库获取现有的阿拉伯数据

时间:2015-02-01 10:00:22

标签: c# sql sql-server visual-studio-2012 unicode

我的老板要求使用旧的SQL Server数据库并构建一个新的应用程序。当我打开它时,我发现所有的阿拉伯数据都是这样的

http://i60.tinypic.com/14lraee.png

名字|


ÚÌæØÚÌæØ|

ÈäÍãíÏÉ|

ÈæÒÇäÉ|

ÈæÔÑæÑ|

列类型已为nvarchar

旧应用程序使用相同的数据库并正常检索阿拉伯语和非阿拉伯语的所有数据我没有这个旧应用程序的代码源

如何将现有数据转换为正常显示?

我尝试了两个SQL命令,如

SELECT UNICODE(@nstring) 

NCHAR(UNICODE(@nstring)) 

和C#转换方法如

https://social.msdn.microsoft.com/Forums/vstudio/en-us/49c55ea4-83c4-4b3b-81ef-d3a54ddf919e/how-do-i-convert-utf8-format-to-unicode-format?forum=netfxbcl

我尝试用SQL服务器管理工​​作室打开它我尝试更改字符集,我尝试更改收集SET但没有运气!

2 个答案:

答案 0 :(得分:4)

从你的线索中,我猜测数据库中的字符串是 NOT Unicode,但编码为Code Page,可能是Code Page 1256 Windows Arabic

如果是这种情况,则必须Convert Between Legacy Encodings and Unicode

答案 1 :(得分:0)

  string data = File.ReadAllText("d.txt", Encoding.GetEncoding("windows-1256"));
            File.WriteAllText("d.txt", data, Encoding.UTF8);
            string data2 = File.ReadAllText("t.txt", Encoding.GetEncoding("ISO-8859-6"));
            File.WriteAllText("t.txt", data, Encoding.UTF8);