Latin1、ISO-8859-1和中文表示

从本质上说,ISO-8859-1是单字节编码,自身不能显示中文,若要显示中文,必须和其他能显示中文的编码配合,如“GBK”,“UTF-8",

以ISO-8859-1编码的文本,都以bytes[]的形式保存,若要显示中文,只需以显示平台的默认编码格式进行解码即可。若仍然以ISO-8859-1格式解码,得到的中文字符肯定是乱码,因为ISO-8859-1自身不能显示中文。

Latin1即ISO-8859-1,它是单字节编码,它本身无法表示中文,不过既然它是byte[],那么其它编码内容,就可以以它存起来(toLatin1),用时候用该编码解释即可。

QString.toLatin1() // 返回QByteArray,可以认为,toLatin1并不是要转换为latin语,而仅仅是利用它单字节存储特性作为字节数组用。        

latin1
latin1又名ISO-8859-1,编码表如下:

demo3
一共256个字符!这就是传说中的单字节编码,mysql选它做默认的编码方式,那么mysql为什么选它做默认编码方式,而不是其他的编码方式呢?

细想一下:

字符串转化为二进制,肯定都是以字节为单位的(8的倍数),所以无论存储什么字符串都能将其完整的对应到demo3的索引表中,读取时可能会乱码,但至少保证了数据的完整性。其他的编码方式显然不具备单字节编码的这种优势,有可能造成数据丢失!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值