1、编码方式介绍:
-
ASCII
ASCII码可以表示所有的英语字符(字母、数字、标点符号等)。ASCII码是7位编码(0-127),但由于计算机基本处理单位为字节(1字节=8位),所以一个ASCII字符占一个字节。 -
Unicode
因为一个ASCII字符只能表示256个字符,显然是存在着局限的(如不能用来表示中文)。而且不同的语言有不同的字符,为了让世界上所有的字符都有一个唯一的编码值(如果一个编码值对应多个字符,就会出现歧义),就出现了Unicode码。Unicode码可以容纳100多万个符号,每个符号的编码都不一样。但是Unicode码的缺点是效率不高,比如UCS-4(Unicode的标准之一)规定用4个字节存储一个符号,那么每个英文字母前都必然有三个字节是0,原本只需1个字节现在却用了4个字节,这对存储和传输来说都很耗资源。 -
GBK编码
GBK编码是国内自己设计的,GBK中一个汉字占2个字节。,国内window电脑下cmd的默认编码就是GBK。
但是如果外国人用的时候,就会出现乱码情况。 -
UTF-8
为了提高Unicode的编码效率,于是就出现了UTF-8编码。UTF-8可以根据不同的符号自动选择编码的长短。在UTF-8中,一个英文占1个字节,一个中文占3个字节。
外国人用也不会出现乱码,这是西方人为了多字节字符形成的解决方案。
程序开发中一般我们使用的默认编码就是UTF-8。
2、lua在控制台输出时出现乱码问题
国内window cmd下默认编码时GBK,而写lua脚本时使用的默认编码是UTF8,所以就出现了乱码问题。
- 解决方法1:修改lua文件的编码方式为GBK。
如果使用的是VSCode,在右下角处可以点击选择要保存的编码方式。
或者直接在我的电脑里面选择lua文件,右键-另存为-选择编码方式。
-
解决方法2:临时修改控制台编码
在控制台界面输入chcp 65001,则可以把当前界面暂时改成UTF-8编码,退出则失效。 -
解决方法3:永久修改控制台编码
比较麻烦,并且也没太大必要,详细可以看大佬博客。
https://blog.csdn.net/gulang03/article/details/81771343
请发表评论