Mag*_*ged 5 c# forms encoding arabic presentation
我试图使用C#中的编码API 将文件从utf-8转换为阿拉伯语1265编码,但是我遇到了一个奇怪的问题,即某些字符未正确转换,如下面的语句中的"لا""محمدصلاحعادل "它看起来像"محمدص?حعادل".我的一些朋友告诉我,这是因为这些字符来自阿拉伯语演示表B.我使用记事本++创建文件并将其保存为utf-8.
这是我使用的代码
StreamReader sr = new StreamReader(@"C:\utf-8.txt", Encoding.UTF8);
string str = sr.ReadLine();
StreamWriter sw = new StreamWriter(@"C:\windows-1256.txt", false, Encoding.GetEncoding("windows-1256"));
sw.Write(str);
sw.Flush();
sw.Close();
Run Code Online (Sandbox Code Playgroud)
但是,我不知道如何使用C#中的演示文稿格式正确转换文件.
是的,您的字符串包含许多无法在1256代码页中表示的连字。您必须先分解字符串,然后再编写它。像这样:
str = str.Normalize(NormalizationForm.FormKD);
st.Write(str);
Run Code Online (Sandbox Code Playgroud)