Encoding.GetChars的一个大BUG

aloneone 2011-03-26 08:52:13
为了读取文本文件,写了一段代码

1 Encoding defaultEncode = Encoding.UTF8;//.ASCII;//.Unicode;
2 byte[] bytes = File.ReadAllBytes(FileName); //unicode.GetBytes(unicodeString);
3 char[] strChars = new char[defaultEncode.GetCharCount(bytes, 0, bytes.Length)];
4 defaultEncode.GetChars(bytes, 0, bytes.Length, strChars, 0);
5 richTextBox1.Text = strChars;

开始读UTF-8无签名编码的整个文件没事,后遇到了UTF-8带签名编码的文本,为了去掉前三个字节BOM就将第4句改为


4 defaultEncode.GetChars(bytes, 3, bytes.Length-3, strChars, 0);

读出来的文本一点变化都没有,第一个字符
根据帮助文档,Encoding.GetChars(),的第2个参数,是读取的起点,第3个参数是读取的字节的长度,我又试关将这两个参数随意变动一下,比如:
defaultEncode.GetChars(bytes, 10, 30, strChars, 0);
竟然还是没有变化。
不知是我理解出了错,还是其他原因,请高人指教
...全文
88 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧