lua在控制台运行时的乱码问题

参考博客:
维1
艰苦奋斗中

1、编码方式介绍:

  1. ASCII
    ASCII码可以表示所有的英语字符(字母、数字、标点符号等)。ASCII码是7位编码(0-127),但由于计算机基本处理单位为字节(1字节=8位),所以一个ASCII字符占一个字节

  2. Unicode
    因为一个ASCII字符只能表示256个字符,显然是存在着局限的(如不能用来表示中文)。而且不同的语言有不同的字符,为了让世界上所有的字符都有一个唯一的编码值(如果一个编码值对应多个字符,就会出现歧义),就出现了Unicode码。Unicode码可以容纳100多万个符号,每个符号的编码都不一样。但是Unicode码的缺点是效率不高,比如UCS-4(Unicode的标准之一)规定用4个字节存储一个符号,那么每个英文字母前都必然有三个字节是0,原本只需1个字节现在却用了4个字节,这对存储和传输来说都很耗资源。

  3. GBK编码
    GBK编码是国内自己设计的,GBK中一个汉字占2个字节。,国内window电脑下cmd的默认编码就是GBK。
    但是如果外国人用的时候,就会出现乱码情况。

  4. 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

posted @ 2020-12-12 15:44  Fflyqaq  阅读(1702)  评论(0编辑  收藏  举报