让Windows命令行显示UTF-8字符

本文提供了一种简单的解决方案来修改Windows终端的代码页和字体设置,以便在MySQL命令行中正确显示UTF-8编码的中文字符,避免乱码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一直苦恼于如何在Windows终端中显示UTF-8字符的问题。比如,在MySQL命令行下,如果数据库的编码是UTF-8,那么,在查询数据库的时候,里面的中文都会变成乱码。

今天半无意的搜索了一下,结果发现解决方案非常简单:

1. 修改终端的代码页。

在终端中输入:

chcp 65001

2. 右键点击任务栏上的终端(也可以单击窗口左上角的图标),在快捷菜单中选择属性,在里面选择字体——如 Lucida Console,不要选择“点阵字体”;

确定之后,再次测试UTF-8输出,你看到了什么。 :)

要切换回原来的模式也很简单:

chcp 936

再把字体改成原来的点阵字体就好了。

注意:修改了代码页之后,如果你使用Cygwin,你会发现cygwin的ls —show-control-chars命令遇到中文目录名时会出错。

### 如何在命令行设置或处理 UTF-8 编码 #### 设置 Linux 或 macOS 命令行中的 UTF-8 编码 对于基于 Unix 的操作系统,如 Linux 和 macOS,在 Docker 容器内外均可以利用 `locale` 工具来查看当前的语言环境变量配置情况。为了确保应用程序和命令行工具能正确解析并显示 UTF-8 字符串,建议将这些环境变量设为支持 UTF-8 的值,例如 C.UTF-8[^1]。 可以通过编辑 shell 配置文件(`.bashrc`, `.zshrc` 等),加入如下语句实现永久更改: ```shell export LC_ALL=C.UTF-8 export LANG=C.UTF-8 ``` #### Windows CMD 下的 UTF-8 编码设定方法 针对 Windows 平台上的 CMD 终端,默认情况下并不采用 UTF-8 作为其内部字符集标准。当执行 PHP 脚本或其他依赖于特定编码的应用时可能会遭遇中文乱码现象。解决办法之一是在启动 CMD 后立即输入 chcp 命令切换至 Unicode 编码页 65001 即代表 UTF-8 编码方式[^4]。 具体操作指令如下所示: ```powershell chcp 65001 ``` 另外一种更为彻底的方式则是通过修改注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage 来改变系统的 OEM 及 ANSI 默认代码页面为对应的 UTF-8 版本。 #### Python 解决方案下的 UTF-8 处理实践 Python 社区成员分享的经验表明,在编写涉及网络请求获取外部资源的小型脚本过程中,如果目标 URL 地址本身即是以 UTF-8 形式进行了百分号转义,则应当保证本地开发环境中也遵循相同的编码规则以避免潜在的数据传输错误[^5]。 通常来说,现代版本的 Python 已经默认启用了源文件级别的 UTF-8 支持;但对于某些特殊情况仍需显式声明编码格式,可以在 .py 文件头部加上以下两行注释完成此目的: ```python # -*- coding: utf-8 -*- import sys sys.setdefaultencoding('utf-8') # 注意该函数已被弃用, 不推荐使用 ``` 不过需要注意的是第二行代码所使用的 setdefaultencoding 函数已经被官方文档标记为废弃接口,不鼓励开发者继续沿用这种方式调整全局字符串对象的行为模式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值