亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 3890 | 回復: 12
打印 上一主題 下一主題

怎樣把 U+2FA17 這樣的 unicode 內(nèi)碼轉(zhuǎn)換成字符? [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2009-01-17 20:07 |只看該作者 |倒序瀏覽
我得到一個文件,裡面全部是 U+2FA17 這樣的 unicode 內(nèi)碼,我希望把這些西轉(zhuǎn)換成對應(yīng)的字符,如 U+2EC6 對應(yīng)「⻆」字。
想用 perl 讀入U+2FA17,輸出對應(yīng)的字符,有沒有什麼方法呢?

論壇徽章:
95
程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-05 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-17 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-18 06:20:002015亞冠之阿爾艾因
日期:2015-09-18 10:35:08月度論壇發(fā)貼之星
日期:2015-09-30 22:25:002015亞冠之阿爾沙巴布
日期:2015-10-03 08:57:39程序設(shè)計版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00每日論壇發(fā)貼之星
日期:2015-10-05 06:20:002015年亞冠紀念徽章
日期:2015-10-06 10:06:482015亞冠之塔什干棉農(nóng)
日期:2015-10-19 19:43:35程序設(shè)計版塊每日發(fā)帖之星
日期:2015-10-21 06:20:00每日論壇發(fā)貼之星
日期:2015-09-14 06:20:00
2 [報告]
發(fā)表于 2009-01-17 20:21 |只看該作者
perldoc -f chr

論壇徽章:
0
3 [報告]
發(fā)表于 2009-01-17 20:45 |只看該作者
#!/usr/bin/perl

while(<>){
    chomp;
    binmode (STDOUT, ":utf8");
    $a=chr($_);
    print "$a\n";
}


$ ./test.pl
0x2EC6

結(jié)果輸出為空,這是怎麼回事?

[ 本帖最后由 Calvin00 于 2009-1-17 20:59 編輯 ]

論壇徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辭舊歲徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
4 [報告]
發(fā)表于 2009-01-18 02:37 |只看該作者
原帖由 Calvin00 于 2009-1-17 20:45 發(fā)表

0x2EC6不是utf8編碼吧

論壇徽章:
95
程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-05 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-17 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-18 06:20:002015亞冠之阿爾艾因
日期:2015-09-18 10:35:08月度論壇發(fā)貼之星
日期:2015-09-30 22:25:002015亞冠之阿爾沙巴布
日期:2015-10-03 08:57:39程序設(shè)計版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00每日論壇發(fā)貼之星
日期:2015-10-05 06:20:002015年亞冠紀念徽章
日期:2015-10-06 10:06:482015亞冠之塔什干棉農(nóng)
日期:2015-10-19 19:43:35程序設(shè)計版塊每日發(fā)帖之星
日期:2015-10-21 06:20:00每日論壇發(fā)貼之星
日期:2015-09-14 06:20:00
5 [報告]
發(fā)表于 2009-01-18 10:24 |只看該作者
原帖由 Calvin00 于 2009-1-17 20:45 發(fā)表
#!/usr/bin/perl

while(){
    chomp;
    binmode (STDOUT, ":utf8");
    $a=chr($_);
    print "$a\n";
}


$ ./test.pl
0x2EC6

結(jié)果輸出為空,這是怎麼回事?

try this

  1. #!/usr/bin/perl

  2. binmode (STDOUT, ":utf8");
  3. while(<>){
  4.         chomp;
  5.         my $c = chr(hex);
  6.         print "$_ = $c\n";
  7. }
復制代碼

[ 本帖最后由 MMMIX 于 2009-1-18 10:25 編輯 ]

論壇徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辭舊歲徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
6 [報告]
發(fā)表于 2009-01-18 18:54 |只看該作者

回復 #5 MMMIX 的帖子

我測試的結(jié)果不對,不知道是不是環(huán)境問題。
$ echo $LANG
zh_CN.utf8

$ cat test.pl
#!/usr/bin/perl

binmode (STDOUT, ":utf8");
while(<>){
    chomp;
    my $c = chr(hex);
    print "$_ = $c\n";
}

./testl.pl
0x2EC6
0x2EC6 = ⻆
0xe4bda0
0xe4bda0 = ▒

論壇徽章:
95
程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-05 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-17 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-18 06:20:002015亞冠之阿爾艾因
日期:2015-09-18 10:35:08月度論壇發(fā)貼之星
日期:2015-09-30 22:25:002015亞冠之阿爾沙巴布
日期:2015-10-03 08:57:39程序設(shè)計版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00每日論壇發(fā)貼之星
日期:2015-10-05 06:20:002015年亞冠紀念徽章
日期:2015-10-06 10:06:482015亞冠之塔什干棉農(nóng)
日期:2015-10-19 19:43:35程序設(shè)計版塊每日發(fā)帖之星
日期:2015-10-21 06:20:00每日論壇發(fā)貼之星
日期:2015-09-14 06:20:00
7 [報告]
發(fā)表于 2009-01-18 19:38 |只看該作者
原帖由 ynchnluiti 于 2009-1-18 18:54 發(fā)表
我測試的結(jié)果不對,不知道是不是環(huán)境問題。
$ echo $LANG
zh_CN.utf8


光顯示 LANG 的設(shè)置是不夠的,因為 Perl 先檢查的是 LC_ALL, 然后上  LC_CTYPE, 最后才是 LANG. 見 perllocale, perluniintro 中的相關(guān)描述。

記得我給你說過這個 :em11:

0xe4bda0
0xe4bda0 = ▒

這個 0xe4bda0 是嘛?并不是你隨便給一個數(shù)字,在 Unicode 中都能得到有意義的結(jié)果。另外,Unicode 的 code point 中本身就存在一些空洞。

論壇徽章:
95
程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-05 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-17 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-18 06:20:002015亞冠之阿爾艾因
日期:2015-09-18 10:35:08月度論壇發(fā)貼之星
日期:2015-09-30 22:25:002015亞冠之阿爾沙巴布
日期:2015-10-03 08:57:39程序設(shè)計版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00每日論壇發(fā)貼之星
日期:2015-10-05 06:20:002015年亞冠紀念徽章
日期:2015-10-06 10:06:482015亞冠之塔什干棉農(nóng)
日期:2015-10-19 19:43:35程序設(shè)計版塊每日發(fā)帖之星
日期:2015-10-21 06:20:00每日論壇發(fā)貼之星
日期:2015-09-14 06:20:00
8 [報告]
發(fā)表于 2009-01-18 19:48 |只看該作者

回復 #7 MMMIX 的帖子

我測試的截圖

tt.gif (25.66 KB, 下載次數(shù): 58)

tt.gif

論壇徽章:
95
程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-05 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-17 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-18 06:20:002015亞冠之阿爾艾因
日期:2015-09-18 10:35:08月度論壇發(fā)貼之星
日期:2015-09-30 22:25:002015亞冠之阿爾沙巴布
日期:2015-10-03 08:57:39程序設(shè)計版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00每日論壇發(fā)貼之星
日期:2015-10-05 06:20:002015年亞冠紀念徽章
日期:2015-10-06 10:06:482015亞冠之塔什干棉農(nóng)
日期:2015-10-19 19:43:35程序設(shè)計版塊每日發(fā)帖之星
日期:2015-10-21 06:20:00每日論壇發(fā)貼之星
日期:2015-09-14 06:20:00
9 [報告]
發(fā)表于 2009-01-18 19:49 |只看該作者
語言環(huán)境設(shè)置
ACA80110:tmp lee$ locale
LANG="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_CTYPE="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_ALL=

論壇徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辭舊歲徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
10 [報告]
發(fā)表于 2009-01-18 20:23 |只看該作者
原帖由 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

  1. locale -a
  2. C
  3. POSIX
  4. zh_CN
  5. zh_CN.gb2312
  6. zh_CN.gbk
  7. zh_CN.utf8
  8. zh_TW
  9. zh_TW.big5

  10. $ LANG="zh_CN.utf8"
  11. $ locale
  12. LANG=zh_CN.utf8
  13. LANGUAGE=C
  14. LC_CTYPE="zh_CN.utf8"
  15. LC_NUMERIC="zh_CN.utf8"
  16. LC_TIME="zh_CN.utf8"
  17. LC_COLLATE="zh_CN.utf8"
  18. LC_MONETARY="zh_CN.utf8"
  19. LC_MESSAGES="zh_CN.utf8"
  20. LC_PAPER="zh_CN.utf8"
  21. LC_NAME="zh_CN.utf8"
  22. LC_ADDRESS="zh_CN.utf8"
  23. LC_TELEPHONE="zh_CN.utf8"
  24. LC_MEASUREMENT="zh_CN.utf8"
  25. LC_IDENTIFICATION="zh_CN.utf8"
  26. LC_ALL=

  27. $ LANG=C
  28. $ locale
  29. LANG=C
  30. LANGUAGE=C
  31. LC_CTYPE="C"
  32. LC_NUMERIC="C"
  33. LC_TIME="C"
  34. LC_COLLATE="C"
  35. LC_MONETARY="C"
  36. LC_MESSAGES="C"
  37. LC_PAPER="C"
  38. LC_NAME="C"
  39. LC_ADDRESS="C"
  40. LC_TELEPHONE="C"
  41. LC_MEASUREMENT="C"
  42. LC_IDENTIFICATION="C"
  43. LC_ALL=

復制代碼

這個 0xe4bda0 是嘛?并不是你隨便給一個數(shù)字,在 Unicode 中都能得到有意義的結(jié)果。另外,Unicode 的 code point 中本身就存在一些空洞。

0xe4bda0 是漢字'你'的utf-8編碼,我是用一個unicode編碼,一個utf-8編碼的字看看效果。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP