首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

这个Encoder.GetBytes(string)为何会错

2012-09-17 
这个Encoder.GetBytes(string)为什么会错Encoding.GetBytes(String)方法:MSDN将指定字符串中的所有字符编

这个Encoder.GetBytes(string)为什么会错
Encoding.GetBytes(String)方法:MSDN

将指定字符串中的所有字符编码为一个字节序列。

可是,下面的代码为什么报错
 static void Main(string[] args)
  {  
  FileStream aFile = new FileStream("e:\\Temp.txt", FileMode.Create);
  Encoder e = Encoding.UTF8.GetEncoder();
  byte[] byData = e.GetBytes("成功"); //报错
  aFile.Write(byData, 0, byData.Length);
  aFile.Close();
  }


上面的代码报错,----““GetBytes”方法没有任何重载采用“1”个参数

可是,MSDN上,Encoding.GetBytes(String)方法明明只有一个参数啊

[解决办法]
byte[] byData = Encoding.UTF8.GetBytes("成功"); //报错

[解决办法]
Encoding.UTF8.GetBytes("xx");
这样

另外,如果你只是想往文件里面写入这个字符串,大可不必那么麻烦

File.WriteAllText("file.txt", "xxx");
[解决办法]
分清楚 Encoder 和 Encoding。
[解决办法]
你调用的是Encoder,不是Encoding,马大哈~~
[解决办法]
GetBytes用法错了,好好看帮助Encoder的getbytes和encoding的getbytes完全不一样
[解决办法]
var a = System.Text.Encoding.UTF8.GetBytes("成功"); 
 楼主这句话是对的 Encoding是system.text命名空间下的吗。
[解决办法]
我一直用的是4.0 会不会有版本之差 这就不清楚了。
[解决办法]
楼主调用的是Encoder.GetBytes(),他跑去MSDN查到的是Encoding.GetBytes(),然后就报错了。。这和版本、和MS压根就没关系,完全是楼主马大哈造成的错。。
[解决办法]
这个才是Encoder.GetBytes的用法:
http://msdn.microsoft.com/zh-cn/library/5zxk59x5
要给很多参数,指明是从哪里编码到哪里,而不是对字符串全部编码(仅编码一部分)

你这种全部编码显然用错了方法。
[解决办法]
Encoder 类:将一组字符转换为一个字节序列。
Encoding 类:表示字符编码。
http://www.cnblogs.com/criedshy/archive/2012/08/08/2628554.html

热点排行