常用字符集与乱码原因

1.ASCII字符集:仅对英文字符编码,每个字符用1B编码,7位二进制足以表示所有ASCII字符集,因此最高位始终为0

2.GBK字符集:GB2312字符集(简体中文字符集)+BIG5字符集(台湾地区繁体中文字符集),GBK是简体中文版Windows系统默认的字符集(不同Windows版本的字符集都互不兼容,但其中的每个字符集都称作ANSI,因此简体中文版Windows系统显示字符集是ANSI,但实际使用的是GBK字符集)

        (1)英文编码方式:GBK完全兼容ASCII,因此英文编码与ASCII相同,编码长度也为1B

        (2)汉字编码方式:每个汉字用2B编码,最高位为1(与英文编码区分),转数字后是负数

3.Unicode字符集:包含世界各种语言的字符集

        (1)编码方式:

                ①UTF-16编码规则:用2~4个字节保存。

                ②UTF-32编码规则:固定使用4个字节保存。

                ③UTF-8编码规则:用1~4个字节保存,其中ASCII文字用1字节保存,拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚文用2字节保存,中日韩文字、东南亚文字、中东文字用3字节保存,其它语言用4字节保存。对于1个字节的ASCII文字的编码都是0开头,而n(n>1)字节的编码,首个字节以n个1+1个0开头,其余字节以10开头。

        (2)英文编码方式:Unicode完全兼容ASCII,因此英文编码与ASCII相同,编码长度也为1B

        (3)汉字编码方式:将汉字字符在Unicode中对应数字的二进制xxxxxxxx xxxxxxxx(16位)依次填入到1110xxxx 10xxxxxx 10xxxxxx(16个填充位)中

4.乱码出现的原因:

        (1)读取数据时未读完整个字符

        (2)编码方式与解码方式不一致

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值