win cmd php中文乱码,windows控制台中文乱码问题集锦

本文介绍了解决Windows平台上cmd、gitcmd控制台及PHP脚本执行时出现的乱码问题的方法。针对不同场景提供了临时性和永久性的解决方案。

前言在程序开发中,虽然我们能够统一编码为UTF-8,但还是控制台常常会遇到各种乱码问题。特别是在Windows平台下乱码的原因是多方面的,但归根结底就是编码与解密标准不一致,这里暂不过多总结。

下面列表常见的问题,已经解决方案:

案例及解决方案cmd 控制台

可以通过win+R,打开cmd,标题处右键点击属性,可以查看当前控制台编码

f5a4806d91917d5a779250027e5a7a86.png

dd0b8c95c7a7a4da0180d7d9fa70975a.png

临时性修改编码

使用 chcp 命令,例如 chcp 65001 ,这回将当前代码页变为 utf-8编码,不过这种方式在关闭 cmd 之后会自动失效。

常用的编码及对应的码值(10进制):十进制码值对应编码名称950繁体中文

65001UTF-8代码页

936简体中文默认的GBK

437MS-DOS 美国英语永久性修改

打开注册表,通过win+R,打开regedit,进入注册表页面

定位到:HKEY_CURRENT_USERConsole%SystemRoot%_system32_cmd.exe这里可能win7跟win10不太一样,如果没有,可以自个加上。win10的是换成powershell了,如图:

dab8c3f3e8f23a308091521ceac08dfc.png

对于没有 CodePage 的,可以鼠标右键-> 新建 -> DWORD(32位)值,创建即可。

cd4907e057a3fc19db1afafb97669eb9.png

当然,大家可以换更新更好用的控制台:terminal,win10商店里就可以搜索下载安装git cmd 控制台

这个设置比较简单,打开控制台后,在空余区域右键,点击Options,

71f004c36048781a996d03727da66069.png

点击Text,如图设置Locale和Character set既可

6b829670cafe4e1311d165d42fd59b96.png

php脚本执行

正常来说,PHP输出的内容解码是根据外部的控制台来控制的,但对于PHP版本7以上,及使用win10系统的用户来说,可能会出现执行结果输出乱码的问题,可看下图:(浏览器页面乱码是HTML头部设置问题,本文不细说)//基于laravel command

public function echoText()

{

$this->info('输出中文测试~~');

}

77f4f448f243821ef54aaec016f7ebe1.png

很奇怪是吧,命令中文可以正常显示,脚本输出的中文却不行

1d9e1d4d080639066efa9a9372f9625d.png

可以发现还是得强制设置下output_encoding和input_encoding。在php.ini文件修改后,结果正确了:

57094f5b2a579ce2bea8c8fc5a2eba13.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值