win7记事本编码问题,帮忙看看

tingwin 2012-11-18 03:41:12
1.UTF-8是既然是可变的,为什么在win7中用记事本存入一个字母,用UTF-8保存,属性查看竟然占了4个字节

2.用记事本存入一个汉字,用UTF-8保存,占的竟然是6个字节。

按照我的理解,一个字母应该只占一个自己才对。而汉字,例如“严”的UTF-8编码是“11100100 10111000 10100101”,保存为UTF-8应该占3个字节才对,为什么在记事本中占了6个字节?这个问题导致我在IO操作的时候频频出错。
补充一点:使用ANSI编码就完全正常,ANSI对字母默认是ASCII编码,汉字是gb2312.
...全文
250 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tingwin 2012-11-20
  • 打赏
  • 举报
回复
结贴!谢谢大家的回答
nmyangym 2012-11-19
  • 打赏
  • 举报
回复
utf_8格式文件在win7下,有3个字节头: ef bb bf 用utf_8表示一个字母,占一个字节。 所以楼主的问题1 占4个字节。 而一般汉字utf_8表示占3个字节,所以楼主的问题2 占6个字节。
夜魔009 2012-11-18
  • 打赏
  • 举报
回复
你用UtralEdit打开,Hex方式查看。UTF-8的文件,有2个字节的文件头。
ljhhh0123 2012-11-18
  • 打赏
  • 举报
回复
用二进制软件的把你保存的文件打开就知道了,如winhex,ultraedit.有的带文件识别头的.magic
huntor 2012-11-18
  • 打赏
  • 举报
回复
Windows的utf8有bom,Java没有。

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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