虽然看了许多关于perl中编码的问题,但是一直也没弄的太明白。
今天做程序时又碰到了这个问题,做了一些实验,得到的结论如下:
由于perl支持内部的utf8格式,所以我对“use utf8”指令特别的实验了一下。
我建议将perl程序文件存储为utf8格式,这个将直接决定你的程序的使用。
当在文件存为utf8格式时候分两种情况:
1、使用“use utf8”指令,这个时候的所有内部变量(是变量)存储默认的都是utf8格式(也就是很多专业的人说的utf8格式的开关打开),常量(是常量)在内部存储也是按照utf8格式(有格式)。
2、当不使用“use utf8”指令时,这个时候默认的常量(是常量)存储是字节流(没有格式哦)的形式,这个情况下就要显示的使用decode函数,和encode函数来转换。也就是在你需要的格式和utf8之间转换。
当文件不存为utf8时,使用“use utf8”指令,一般内部的产量显示为乱码,这个时候默认的是你存储格式,但是常量是utf8的。
不使用“use utf8”指令常量就是你存储的格式,一般不会出什么事。
以上情况只是针对使用utf8比较频繁的情况,当然我的认识还很肤浅,如果大家有熟悉这方面知识的,欢迎与我讨论。