我有一个文本文件,我将其转换为unicode,然后想将内容保存到文件中。我想以2种格式保存在文件中:
UnicodeEncoding u = new UnicodeEncoding();
byte[] filebytes = u.GetBytes("C:/file.doc");
File.WriteAllBytes(@"C:/uni.doc", filebytes); // unicode
File.WriteAllBytes(@"C:/ori.doc", filebytes); // As the Original file
答案 0 :(得分:3)
字节是字节:只是8位二进制数。
编码仅适用于 text ,如果您已完成二进制读取,则无法获得
。如果你想用一种编码读取文本文件并将其写入另一种编码,你可以这样做:
Encoding sourceEncoding = Encoding.UTF8 ; // or whatever encoding the source file is encoded with
Encoding targetEncoding = Encoding.UTF32 ; // or whatever destination encoding you desire
string data = File.ReadAllText( @"C:\original.txt" , sourceEncoding ) ;
File.WriteAllText( @"C:\different-encoding.txt" , data , targetEncoding ) ;
您应该记住,字符串在CLR基础结构中内部表示为Unicode文本的UTF-16编码。
答案 1 :(得分:0)
GetBytes将字符串转换为字节,不将文件路径作为输入。您必须使用StreamReader来读取文件文本。要获取编码字节,只需将Read字节传递给System.Text.Encoding.UTF16.GetBytes(stringIJustReadFromFile);
对于ASCII,使用System.Text.Encoding.ASCII.GetBytes(stringIJustReadFromFile),您可以使用StreamWriter将它们写入其他文件。