6

我需要获取波斯语字符串的 ASCII 码才能在程序中使用它。但是下面的方法给出了?分数: ”??? ????”

public string PerisanAscii()
    {

        //persian string 
        string unicodeString = "صبح بخیر";

        // Create two different encodings.
        Encoding ascii = Encoding.ASCII;
        Encoding unicode = Encoding.Unicode;

        // Convert the string into a byte array. 
        byte[] unicodeBytes = unicode.GetBytes(unicodeString);

        // Perform the conversion from one encoding to the other. 
        byte[] asciiBytes = Encoding.Convert(unicode, ascii, unicodeBytes);

        // Convert the new byte[] into a char[] and then into a string. 
        char[] asciiChars = new char[ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)];
        ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0);
        string asciiString = new string(asciiChars);

        return asciiString;
    }

你能帮助我吗?

最好的问候,
莫森

4

2 回答 2

5

您可以将波斯语 UTF8 数据转换为 Windows-1256(阿拉伯语 Windows):

var enc1256 = Encoding.GetEncoding("windows-1256");
var data = enc1256.GetBytes(unicodeString);
System.IO.File.WriteAllBytes(path, data);
于 2013-11-13T13:41:25.757 回答
1

ASCII 不支持波斯语。您可能需要老式的伊朗系统编码标准。这由您的 Autocad 应用程序决定。我不知道 Windows 中是否有直接编码。但是您也可以手动转换字符。这是一个简单的映射。

于 2013-11-14T16:15:17.627 回答