阿拉伯语演示文稿形式B支持c#

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#中的演示文稿格式正确转换文件.

Han*_*ant 5

是的,您的字符串包含许多无法在1256代码页中表示的连字。您必须先分解字符串,然后再编写它。像这样:

  str = str.Normalize(NormalizationForm.FormKD);
  st.Write(str);
Run Code Online (Sandbox Code Playgroud)