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