将.txt文件转换为unicode

int*_*sic 1 c# unicode

有没有办法可以使用c#将.txt文件转换为unicode?

Joa*_*uer 6

只有当您知道用于生成.txt文件的原始编码时(并且这不是C#或.NET语言的限制,这是一个普遍的问题).

阅读绝对最低每一个软件开发人员绝对,积极必须知道的关于Unicode和字符集(没有借口!) ,了解为何"纯文本"是毫无意义的,如果你不知道的编码.


pax*_*blo 5

如果您只在文本文件中使用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)