- 論壇徽章:
- 3
|
原帖由 MMMIX 于 2009-1-18 19:38 發(fā)表 ![]()
光顯示 LANG 的設(shè)置是不夠的,因為 Perl 先檢查的是 LC_ALL, 然后上 LC_CTYPE, 最后才是 LANG. 見 perllocale, perluniintro 中的相關(guān)描述。
記得我給你說過這個 :em11:
對,你說過。不過LC_CTYPE是設(shè)置了的。
直接給LANG賦值, 會設(shè)置LC_CTYPE
- locale -a
- C
- POSIX
- zh_CN
- zh_CN.gb2312
- zh_CN.gbk
- zh_CN.utf8
- zh_TW
- zh_TW.big5
- $ LANG="zh_CN.utf8"
- $ locale
- LANG=zh_CN.utf8
- LANGUAGE=C
- LC_CTYPE="zh_CN.utf8"
- LC_NUMERIC="zh_CN.utf8"
- LC_TIME="zh_CN.utf8"
- LC_COLLATE="zh_CN.utf8"
- LC_MONETARY="zh_CN.utf8"
- LC_MESSAGES="zh_CN.utf8"
- LC_PAPER="zh_CN.utf8"
- LC_NAME="zh_CN.utf8"
- LC_ADDRESS="zh_CN.utf8"
- LC_TELEPHONE="zh_CN.utf8"
- LC_MEASUREMENT="zh_CN.utf8"
- LC_IDENTIFICATION="zh_CN.utf8"
- LC_ALL=
- $ LANG=C
- $ locale
- LANG=C
- LANGUAGE=C
- LC_CTYPE="C"
- LC_NUMERIC="C"
- LC_TIME="C"
- LC_COLLATE="C"
- LC_MONETARY="C"
- LC_MESSAGES="C"
- LC_PAPER="C"
- LC_NAME="C"
- LC_ADDRESS="C"
- LC_TELEPHONE="C"
- LC_MEASUREMENT="C"
- LC_IDENTIFICATION="C"
- LC_ALL=
復制代碼
這個 0xe4bda0 是嘛?并不是你隨便給一個數(shù)字,在 Unicode 中都能得到有意義的結(jié)果。另外,Unicode 的 code point 中本身就存在一些空洞。
0xe4bda0 是漢字'你'的utf-8編碼,我是用一個unicode編碼,一個utf-8編碼的字看看效果。 |
|