从 SQL 服务器数据库获取现有阿拉伯语数据

Get existing arabic data from SQL Server database

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

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 服务器管理工​​作室打开它 我尝试更改字符集,我尝试更改集合集但没有成功!

根据您的线索,我猜测数据库中的字符串 不是 Unicode,而是编码为 Code Page,也许 Code Page 1256 Windows Arabic

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

  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);