只有当您知道用于生成.txt文件的原始编码时(并且这不是C#或.NET语言的限制,这是一个普遍的问题).
阅读绝对最低每一个软件开发人员绝对,积极必须知道的关于Unicode和字符集(没有借口!) ,了解为何"纯文本"是毫无意义的,如果你不知道的编码.
如果您只在文本文件中使用ASCII字符,则它们已经是Unicode,编码为UTF-8.
在您需要不同的字符编码(UTF16/UCS2等)时,任何支持Unicode的语言都应该能够读取一个编码并写出另一个编码.
这些System.Text.Encoding东西将根据以下示例执行 - 它将UTF16输出为UTF8和ASCII,然后再返回(代码无偿地从这里被盗).
using System;
using System.IO;
using System.Text;
class Test {
public static void Main() {
using (StreamWriter output = new StreamWriter("practice.txt")) {
string srcString = "Area = \u03A0r^2"; // PI.R.R
// Convert the UTF-16 encoded source string to UTF-8 and ASCII.
byte[] utf8String = Encoding.UTF8.GetBytes(srcString);
byte[] asciiString = Encoding.ASCII.GetBytes(srcString);
// Write the UTF-8 and ASCII encoded byte arrays.
output.WriteLine("UTF-8 Bytes: {0}",
BitConverter.ToString(utf8String));
output.WriteLine("ASCII Bytes: {0}",
BitConverter.ToString(asciiString));
// Convert UTF-8 and ASCII encoded bytes back to UTF-16 encoded
// string and write.
output.WriteLine("UTF-8 Text : {0}",
Encoding.UTF8.GetString(utf8String));
output.WriteLine("ASCII Text : {0}",
Encoding.ASCII.GetString(asciiString));
Console.WriteLine(Encoding.UTF8.GetString(utf8String));
Console.WriteLine(Encoding.ASCII.GetString(asciiString));
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9034 次 |
| 最近记录: |