【发布时间】:2010-09-06 08:08:42
【问题描述】:
我必须创建某种文本文件,其中包含解码为 ASCII 的数字和希伯来字母。
这是在 ButtonClick 上触发的文件创建方法
protected void ToFile(object sender, EventArgs e)
{
filename = Transactions.generateDateYMDHMS();
string path = string.Format("{0}{1}.001", Server.MapPath("~/transactions/"), filename);
StreamWriter sw = new StreamWriter(path, false, Encoding.ASCII);
sw.WriteLine("hello");
sw.WriteLine(Transactions.convertUTF8ASCII("שלום"));
sw.WriteLine("bye");
sw.Close();
}
如您所见,我使用 Transactions.convertUTF8ASCII() 静态方法将可能的 Unicode 字符串从 .NET 转换为它的 ASCII 表示。我在希伯来语“shalom”一词上使用它并返回“????”而不是我需要的结果。
方法如下。
public static string convertUTF8ASCII(string initialString)
{
byte[] unicodeBytes = Encoding.Unicode.GetBytes(initialString);
byte[] asciiBytes = Encoding.Convert(Encoding.Unicode, Encoding.ASCII, unicodeBytes);
return Encoding.ASCII.GetString(asciiBytes);
}
我没有将初始单词解码为 ASCII,而是得到 '????'在我创建的文件中,即使我运行调试器,我也会得到相同的结果。
我做错了什么?
【问题讨论】:
-
嗨,你是怎么解决的?我有同样的问题。需要将希伯来语 unicode(1400 ,1500 等)转换为 ASCII 码。