使用unicode字节数组保存文件 - 初学者

时间:2013-09-17 20:53:31

标签: c#

我有一个文本文件,我将其转换为unicode,然后想将内容保存到文件中。我想以2种格式保存在文件中:

  1. 在unicode
  2. 英文字符(如file.doc)
  3. 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
    

2 个答案:

答案 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将它们写入其他文件。