Tomcat乱码

cmd 更换默认编码

                    版权声明:转载请注明出处——                        <a class="copy-right-url" href=" https://blog.csdn.net/chy555chy/article/details/78355985"> https://blog.csdn.net/chy555chy/article/details/78355985</a>
                </div>
                                                <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-3019150162.css">
                                    <div id="content_views" class="markdown_views prism-atom-one-dark">
                <!-- flowchart 箭头图标 勿删 -->
                <svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
                    <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path>
                </svg>
                                        <p>最近在学 Lua 的过程中发现一个问题,cmd 执行 Lua 程序打印中文会变成乱码。</p>

原因是 控制台 默认使用 GBK 编码。要修改 控制台 的编码就要用到 CHCP 命令了。

有两种方式查看 chcp 的用法说明

  1. help chcp
  2. chcp /?

这里写图片描述

CHCP [nnn]

nnn 指定代码页的编号(注意:三个n并非说明代码页只能有3位)

CHCP 命令用来显示或设置 控制台活动代码页编号。不带参数键入 CHCP 以显示活动代码页编号。

活动代码页编号的定义

代码页是字符集编码的别名,也有人称”内码表”。早期,代码页是IBM称呼电脑BIOS本身支持的字符集编码的名称。当时通用的操作系统都是命令行界面系统,这些操作系统直接使用BIOS供应的VGA功能来显示字符,操作系统的编码支持也就依靠BIOS的编码。现在这BIOS代码页被称为OEM代码页。图形操作系统解决了此问题,图形操作系统使用自己字符呈现引擎可以支持很多不同的字符集编码。

早期IBM和微软内部使用特别数字来标记这些编码,其实大多的这些编码已经有自己的名称了。虽然图形操作系统可以支持很多编码,很多微软程序还使用这些数字来点名某编码。

下表列出了所有支持的代码页及其国家(地区)或者语言:

代码页国家(地区)或语言
437美国
708阿拉伯文(ASMO 708)
720阿拉伯文(DOS)
850多语言(拉丁文 I)
852中欧(DOS) - 斯拉夫语(拉丁文 II)
855西里尔文(俄语)
857土耳其语
860葡萄牙语
861冰岛语
862希伯来文(DOS)
863加拿大 - 法语
865日耳曼语
866俄语 - 西里尔文(DOS)
869现代希腊语
874泰文(Windows)
932日文(Shift-JIS)
936中国 - 简体中文(GB2312)
949韩文
950繁体中文(Big5)
1200Unicode
1201Unicode (Big-Endian)
1250中欧(Windows)
1251西里尔文(Windows)
1252西欧(Windows)
1253希腊文(Windows)
1254土耳其文(Windows)
1255希伯来文(Windows)
1256阿拉伯文(Windows)
1257波罗的海文(Windows)
1258越南文(Windows)
20866西里尔文(KOI8-R)
21866西里尔文(KOI8-U)
28592中欧(ISO)
28593拉丁文 3 (ISO)
28594波罗的海文(ISO)
28595西里尔文(ISO)
28596阿拉伯文(ISO)
28597希腊文(ISO)
28598希伯来文(ISO-Visual)
38598希伯来文(ISO-Logical)
50000用户定义的
50001自动选择
50220日文(JIS)
50221日文(JIS-允许一个字节的片假名)
50222日文(JIS-允许一个字节的片假名 - SO/SI)
50225韩文(ISO)
50932日文(自动选择)
50949韩文(自动选择)
51932日文(EUC)
51949韩文(EUC)
52936简体中文(HZ)
65000Unicode (UTF-7)
65001Unicode (UTF-8)

将 控制台 编码 临时 设为 utf-8 编码

控制台 的默认编码为:936【中国 - 简体中文(GB2312)】

这里写图片描述

键入 chcp 65001 控制台就会清屏,然后切换到新的代码页

这里写图片描述

但是如果仅这样设置的话,下次打开控制台还会恢复成原来的编码,即 936【中国 - 简体中文(GB2312)】。

将 控制台 编码 永久 设为 utf-8 编码

只有一种办法,那就是修改注册表

  • 运行 regedit

  • 进入 HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe 将 CodePage 改为 fde9 (原值为 3a8)均是编码的十六进制表现形式。

这里写图片描述

powershell 的默认编码也可以通过这种方式改变。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值