我的老板要求使用旧的SQL Server数据库并构建一个新的应用程序。当我打开它时,我发现所有的阿拉伯数据都是这样的
http://i60.tinypic.com/14lraee.png
名字|
ÚÌæØÚÌæØ|
ÈäÍãíÏÉ|
ÈæÒÇäÉ|
ÈæÔÑæÑ|
列类型已为nvarchar
旧应用程序使用相同的数据库并正常检索阿拉伯语和非阿拉伯语的所有数据我没有这个旧应用程序的代码源
如何将现有数据转换为正常显示?
我尝试了两个SQL命令,如
SELECT UNICODE(@nstring)
或
NCHAR(UNICODE(@nstring))
和C#转换方法如
我尝试用SQL服务器管理工作室打开它我尝试更改字符集,我尝试更改收集SET但没有运气!
答案 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);