无名 发表于 2022-5-8 18:05:14

【限定72小时】解决 Perl 输出中文乱码问题


相信很多小伙伴在使用 Perl 语言的时候,经常会遇到这样一个问题,Perl 不支持中文?perl 输入或者输出中文会出现乱码。这时怎么办呢?下面小编就教小伙伴们如何解决这个问题。

方法/步骤
就以 windows 上的 ActivePerl 为例。
小编的代码特别简单,就是一句:
print "你好";
却出现了乱码,如图。http://cdn.u1.huluxia.com/g3/M01/BE/C7/wKgBOV5wftqAUYgvAABpgTVweVM397.jpg
遇到这样的问题,我们要怎么办?
其实就是 perl 编码的问题,这其实和我们操作系统的编码有关。
我们打开 cmd 命令提示符,输入 chcp 获得编码类型代码。
可见,小编这里的 windows 是代号 936 为默认编码格式。http://cdn.u1.huluxia.com/g3/M01/BE/C7/wKgBOV5wftuAe1_gAABwjhpHwf8575.jpg
然后我们可以看到,936 代码页对应的是 gb2313(即中文),或者说是 gbk。http://cdn.u1.huluxia.com/g3/M01/BE/C7/wKgBOV5wftuAHWNnAADkOfaaojU475.jpg
我们知道了我们 windows 是用 gb2312 编码的,这时我们只要改变编码格式即可。
在代码头部输入:http://cdn.u1.huluxia.com/g3/M01/BE/C7/wKgBOV5wftyAQ-OxAAH9-4mkQtA884.png
此时是不是就能正常输出中文了呢?
一定要注意一点,如果代码涉及到读取中文的文件,一定要加 上binmode(STDIN,":encoding(gbk)");。http://cdn.u1.huluxia.com/g3/M01/BE/C7/wKgBOV5wft2AenkXAACODi216Zg359.jpg
http://cdn.u1.huluxia.com/g3/M01/BE/C7/wKgBOV5wft2Aa3ZpAABuU7RezVI605.jpg
本教程转载网络,我只是小小搬运工
页: [1]
查看完整版本: 【限定72小时】解决 Perl 输出中文乱码问题