我需要获取波斯语字符串的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;
}
你能帮助我吗?
最好的问候,
穆赫辛
答案 0 :(得分:3)
您可以将波斯语UTF8数据转换为Windows-1256(阿拉伯语Windows):
var enc1256 = Encoding.GetEncoding("windows-1256");
var data = enc1256.GetBytes(unicodeString);
System.IO.File.WriteAllBytes(path, data);
答案 1 :(得分:0)
ASCII不支持波斯语。你可能需要旧学校Iran System encoding standard。这取决于您的Autocad应用程序。我不知道Windows中是否存在直接编码。但您也可以手动转换字符。这是一个简单的映射。