Visual Studio .NET 2002.NET 1.0Visual Studio .NET 2003.NET 1.1.NET 3.0Visual Studio 2005.NET 2.0C# 2.0初学者C# 3.0开发Visual StudioWindows.NETC#
编码带重音的字符






3.77/5 (12投票s)
在纯文本文件中导出带重音字符存在问题。你需要编码,但是哪种编码?
引言
在文本文件中导出带重音字符存在问题。有些程序无法导入或正确显示带重音的字符。因此,你需要使用编码来正确导出纯文本文件。但是,有很多编码,应该使用哪一种?
解决方法
答案是:iso-8859-8。
这是希伯来语 (ISO-Visual) 编码。该编码在 .NET 中原生支持。它可以智能地转换为可视格式。其他标准编码器不会这样做,如下所示。
示例
转换以下内容:Frédéric François。
编码 | 描述 | 输出 |
ASCII | Fr?d?ric Fran?ois | |
默认值 | Frédéric François | |
UTF7 | Unicode (UTF-7) | Fr+AOk-d+AOk-ric Fran+AOc-ois |
UTF8 | Unicode(UTF-8) | Frédéric François |
iso-8859-1 | 西欧 (ISO) | Frédéric François |
iso-8859-8 | 希伯来语 (ISO-Visual) | Frederic Francois |
us-ascii | US-ASCII | Fr?d?ric Fran?ois |
Windows-1252 | 西欧 (Windows) | Frédéric François |
使用编码的示例代码
StreamWriter sw = new StreamWriter
("somefile.txt", false, System.Text.Encoding.GetEncoding("iso-8859-8"));
为初学者提供的完整示例
using (StreamWriter sw = new StreamWriter
("somefile.txt", false, System.Text.Encoding.GetEncoding("iso-8859-8")))
{
DataSet1TableAdapters.binsTA ta = new DataSet1TableAdapters.binsTA();
DataSet1.binsDataTable dt = ta.GetData();
foreach (DataSet1.binsRow row in dt.Rows)
{
sw.Write(row.ID.ToString());
sw.Write("|");
sw.WriteLine(row.description);
}
}
历史
- 2007年5月22日:初始发布