编程基础-文字编码-字符集/编码方式/常见乱码错误
2012-04-10 14:33
330 查看
本文由larrylgq编写,转载请注明出处:http://blog.csdn.net/larrylgq/article/details/7444999
作者:吕桂强
邮箱:larry.lv.word@gmail.com
由于计算机只能处理用开关组成的二进制数字,所以当我们要处理文字的时候就要将文字转换成相应的数字,而这些数字就是文字编码
因为世界上语言众多,再加上方言,古代语言,特殊符号等,我们没法同时包括所有的文字,所以只能事先规定使用哪些文字,这些实现规定的文字集合就叫字符集
像我们经常用的有ASCII和Unicode,GB2312等
其中Unicode是为了处理所有语言的文字而定义的文字集
字符集中为字符分配编码的是字符编码
eg:UTF-8等
一个字符集可以对应多种编码方式
Unicode字符集:
之前的Unicode字符集使用16位编码方式来实现,但是随着加入的文字越来越多,超过了65535之后之前的编码方式就已经放不下了
现在Unicode使用21位来表示
Unicode的编码方式:
Unicode主要有UTF-8,UTF-16BE/LE(big endian,little endian),UTF-32BE/LE等编码方式
UTF-8:
优点是:可变长的,与Ascii兼容
第一个字节开头有几个连续的1,表示有几个字节
缺点是:
1,占用空间大,几乎所有的汉字都要3个字节
2,正因为是可变长度的,所以随机访问字符串中任意文字的时候需要正序遍历
UTF-16:
从Unicode2字符数超过65530之后就渐渐淘汰
UTF-32:
采用固定的32位的编码方式
缺点是占用内存多
优点是随机访问快
程序中出现乱码的原因:
1,使用错误的编码方式读取
2,没有字体(用于在显示器上展示文字)
3,语言进行内部编码转换时出错
4,使用用户自定义的文字
5,使用的字符集不同(缺少字符)
6,字节顺序错误(eg:UTF-16/32的BE和LE)
作者:吕桂强
邮箱:larry.lv.word@gmail.com
由于计算机只能处理用开关组成的二进制数字,所以当我们要处理文字的时候就要将文字转换成相应的数字,而这些数字就是文字编码
因为世界上语言众多,再加上方言,古代语言,特殊符号等,我们没法同时包括所有的文字,所以只能事先规定使用哪些文字,这些实现规定的文字集合就叫字符集
像我们经常用的有ASCII和Unicode,GB2312等
其中Unicode是为了处理所有语言的文字而定义的文字集
字符集中为字符分配编码的是字符编码
eg:UTF-8等
一个字符集可以对应多种编码方式
Unicode字符集:
之前的Unicode字符集使用16位编码方式来实现,但是随着加入的文字越来越多,超过了65535之后之前的编码方式就已经放不下了
现在Unicode使用21位来表示
Unicode的编码方式:
Unicode主要有UTF-8,UTF-16BE/LE(big endian,little endian),UTF-32BE/LE等编码方式
UTF-8:
优点是:可变长的,与Ascii兼容
第一个字节开头有几个连续的1,表示有几个字节
缺点是:
1,占用空间大,几乎所有的汉字都要3个字节
2,正因为是可变长度的,所以随机访问字符串中任意文字的时候需要正序遍历
UTF-16:
从Unicode2字符数超过65530之后就渐渐淘汰
UTF-32:
采用固定的32位的编码方式
缺点是占用内存多
优点是随机访问快
程序中出现乱码的原因:
1,使用错误的编码方式读取
2,没有字体(用于在显示器上展示文字)
3,语言进行内部编码转换时出错
4,使用用户自定义的文字
5,使用的字符集不同(缺少字符)
6,字节顺序错误(eg:UTF-16/32的BE和LE)
相关文章推荐
- 编程中常见的错误处理方式
- Struts常见错误及原因分析-Java基础-Java-编程开发
- 常见字符集和编码方式
- Mysql数据库操作字符集编码乱码错误 UnicodeEncodeError 'latin-1' - C/C++转Python疑难杂症(一)
- JavaWeb开发常见乱码处理之设置编码方式
- 【基础知识】字符集编码、Java中编码的格式以及乱码产生的原因
- 文字编码与常见中文乱码的解决方法
- 编程基础-java编码方式-UCS/UTF-16
- java基础编程中常见的错误(基本类型)
- 中文乱码问题 ? 原因:JSP中默认使用iso-8859-1字符编码方式,不支持中文 ? 常见的支持中文的编码方式:gb2312(常用简体汉字)、gbk(简体和繁体汉字)、utf-8 ? 解决中文乱码
- 在非英文字符集的页面上,如果使用Ajax方式进行数据交互的话,就必须要注意保证前后端数据的统一编码,否则,很容易就出现乱码!
- 字符常见的几种编码方式
- eclipse的js文件中汉字是乱码怎么解决,更改eclipse的编码方式
- 笔试题:C语言分配内存的方式及常见的内存错误
- 常见乱码解决以及javaBean基础知识
- 常见的编码与字符集
- java中文编码(字符集)分析-中文乱码分析及解决方案
- Python基础语法 编码,字符集
- AT编程常见问题与错误代码的意义
- 【Java基础专题】编码与乱码(05)---GBK与UTF-8之间的转换