Chinaunix首页 | 论坛 | 博客
  • 博客访问: 225526
  • 博文数量: 27
  • 博客积分: 1151
  • 博客等级: 少尉
  • 技术积分: 426
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-15 19:25
文章分类
文章存档

2012年(5)

2011年(6)

2010年(16)

我的朋友

分类:

2010-12-25 16:30:58

By fireworks2@foxmail.com

linux下开发的同志们,经常会遇到的字符集问题,总浪费时间还很纠结!
我在这里简单总结了一下,希望对你有帮助

大部分问题都是和中文相关导致的,至于其他语种的这里就不关注了。着重说GBX和UTF-8

0. UTF-8和GB系列都可以表示中文,只是内在表示方式不同而已

1. 这几种字符集,为了兼容ASCII,与原ASCII对应的那些字符的编码结果不变,即普通英文字符数字什么的,还只是占一个字节

2. 对于汉字,GB系列是双字节编码类的,每个汉字占两字节,而UTF-8需要用三个字节来表示

3. GB系列是逐渐扩展出来的,可表示的字符越来越多,GB2312 -> GBK -> GB18030...

4. UTF-8还有一个bom的问题,通常linux下默认创建的文件时不会加bom的,即utf-8无bom
   bom就是个文件头,多了几个字节用来标记本文件的类型,用于区分utf-16 utf-32...

 文件头 编码方式
 00 00 FE FF UTF-32, big-endian 
 FF FE 00 00 UTF-32, little-endian 
 FE FF UTF-16, big-endian 
 FF FE UTF-16, little-endian 
 EF BB BF UTF-8

PS:  纯文本文件,通常不带文件头来标记文件类型,而是需要编辑器来识别。
比如,纯英文的文件,让编辑器看来,实际上各字符集根本就没什么关系,因为此时各字符集对应的结果是一致的。


还不明白?自己看看吧,推荐好文:
http://www.blogjava.net/dreamstone/archive/2006/11/28/83936.html

阅读(1543) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~