文本文件编码

本文深入探讨了计算机内部字符编码原理,解释了乱码产生的原因,并介绍了常见文本文件编码格式,如ANSI、UTF-8、Unicode及其Big Endian形式。此外,还讨论了源码字符集与执行字符集的概念,以及在Qt环境下正确处理中文字符的方法。
摘要由CSDN通过智能技术生成

首先,计算机内部只能存储二进制数据,即1和0的bit位。所以,我们要让计算机显示各种字符,就必须要对字符进行编码,让每一个字符对应一个数字编码。而之所以会造成乱码现象,是因为当初创建文件的时候采用的编码方式,和打开时的编码方式不一样,这样的对应关系就乱了,于是我们看到的就是乱七八糟的。
--------------------- 
原文:https://blog.csdn.net/charles_neil/article/details/70942840 

文本文件编码有四种

ANSI:系统预设的标准文字储存格式。

UTF-8:UTF意为通用字集转换格式(Universal Character Set Transformation Format),UTF-8是Unicode的8位元格式。如果使用只能在同类位元组内支持8个位元的重要资料一类的旧式传输媒体,可选择UTF-8格式

Unicode:世界上所有主要指令文件的联集,包括商业和个人电脑所使用的公用字集。当采用Unicode格式储存文件时,可使用Unicode控制字符辅助说明语言的文字覆盖范围,

Unicode big endian:在Big-endian处理器(如苹果Macintosh电脑)上建立的Unicode文件中的文字位元组(存放单位)排列顺序,与在Intel处理器上建立的文件的文字位元组排列顺序相反。

https://blog.csdn.net/kaibing/article/details/78199743

 

2、

源码字符集(the source character set):源码文件是使用何种编码保存的。
       执行字符集(the execution character set):可执行程序内保存的是何种编码(程序执行时内存中字符串编码)。
源码字符集很容易理解,就是我们源代码的编码。为了我们的代码能够跨平台,源文件要保存为带 BOM 的 utf-8

3、

问题:QString str( QObject::tr("中文") ) 能用么?

 答案:不能,tr( ) 中只能是英文。

 因为QT5版本取消了QTextCodec::setCodecForTr()方法。并且你要明白QObject::tr是干嘛的。它是用于程序国际化使用的,也就可以界面文字翻译成不同的语言。你如果使用QObject::tr,你应该全部用英文表示,然后后面借助Linguist翻译成中文,就不会乱码了。详细请搜索“qt国际化"。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值