Je crois que beaucoup d’amis rencontrent souvent ce problème lorsqu’ils utilisent le langage Perl : Perl ne prend pas en charge le chinois ? L’entrée ou la sortie de chinois avec Perl produira du texte illisible. Que faire alors ? Ci-dessous, je vais apprendre à mes amis comment résoudre ce problème.

Méthode/Étapes
Prenons ActivePerl sous Windows comme exemple.
Mon code est très simple, une seule ligne :
print "你好";
Mais du texte illisible est apparu, comme le montre la figure.

Que devons-nous faire lorsque nous rencontrons un tel problème ?
Il s'agit en fait d'un problème d'encodage Perl, et il est lié à l'encodage de notre système d'exploitation.
Nous ouvrons l'invite de commandes cmd et saisissons chcp pour obtenir le code du type d'encodage.
On peut voir que Windows ici utilise la page de code 936 comme format d'encodage par défaut.

Ensuite, nous pouvons voir que la page de code 936 correspond à gb2313 (c'est-à-dire le chinois), ou plutôt gbk.

Maintenant que nous savons que notre Windows utilise l'encodage gb2312, il nous suffit de changer le format d'encodage.
Saisissez ce qui suit en haut du code :
use utf8; #引入utf8模块 脚本内的字符串使用utf8作为编码格式 binmode(STDOUT,":encoding(gbk)"); #标准输出使用gbk作为编码格式,也可以把gbk改为gb2312 binmode(STDIN,":encoding(gbk)"); #如果涉及到输入流,例如读文件,不加这条读中文文件会出现乱码 binmode(STDERR,":encoding(gbk)"); #如果异常错误中的字符串有中文,请加上STDERR,否则也会出现乱码 print "你好";
À ce stade, le chinois peut-il être affiché normalement ?
Une chose à noter : si le code implique la lecture de fichiers chinois, assurez-vous d'ajouterAjoutez binmode(STDIN,":encoding(gbk)");。


Il existe une autre méthode : pour STDIN, STDOUT, STDERR (c'est-à-dire l'entrée standard, la sortie standard et l'erreur standard), tous utilisent un certain encodage comme format d'encodage.
Toujours ce petit programme simple, utilisant print pour afficher une chaîne de caractères chinoise.
Le code est le suivant :
use utf8; use open ":encoding(gbk)",":std"; #标准输入、输出、错误皆用gbk编码格式进行编码 print "你好";


URL d'origine : https://jingyan.baidu.com/article/4f7d5712fd36301a21192744.html