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

  免費注冊 查看新帖 |

Chinaunix

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

求獲取漢字unicode具體編碼的方法 [復(fù)制鏈接]

論壇徽章:
1
IT運維版塊每日發(fā)帖之星
日期:2016-03-09 06:20:00
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2005-03-20 19:13 |只看該作者 |倒序瀏覽
我在用perl編一個wml動態(tài)網(wǎng)頁,需要獲取漢字的unicode編碼,并整理成形如“&#x5c71”的格式! 

比如“山”字,編碼是“&#x5c71”。

我想用perl實現(xiàn)這個功能,在安裝了encode模塊后,可以把漢字轉(zhuǎn)碼為utf8格式,但不能得到需要的編碼。

把“山”字轉(zhuǎn)為utf8格式后保存到文件,用ultraedit打開文件,用十六進制模式查看可以看到到文件內(nèi)容是 71 5c,但怎樣用perl直接得到“71 5c”的編碼呢?謝謝!


下面的java網(wǎng)頁就是實現(xiàn)這樣的轉(zhuǎn)碼功能,如果上面我說的不清楚,概括地說就是如何用perl實現(xiàn)下面網(wǎng)頁提供的查看unicode功能:

http://www.wapschool.com/chinese/tech/tools/onlinetool.shtml

論壇徽章:
0
2 [報告]
發(fā)表于 2005-03-21 10:45 |只看該作者

求獲取漢字unicode具體編碼的方法

my $c = "我";

print unpack("H*",$c); # 輸出 ced2, 此為漢字編碼\xcede

論壇徽章:
1
IT運維版塊每日發(fā)帖之星
日期:2016-03-09 06:20:00
3 [報告]
發(fā)表于 2005-03-21 11:31 |只看該作者

求獲取漢字unicode具體編碼的方法

謝謝

使用 unpack("H*",$c); 的方法我也試了,可結(jié)果并不是想要的。

對于漢字“我”,最后需要的是“&#X  6211;”  把“&#X  6211;”  插入網(wǎng)頁可以正確顯示“我”。  

(&#X和后面16進制編碼之間沒有空格,為了發(fā)貼正常顯示我加上了空格)

我試驗了一下,“ced2”是漢字“我”的GB2312編碼格式。在用encode模塊把“我”轉(zhuǎn)為utf8后,再用unpack("H*",$c); 查看編碼得到的是“e68891”

“6211;”  和“e68891”是否存在換算的關(guān)系呢?我注意到把utf8編碼的漢字保存后用ultraedit打開就可以看到需要的"6211" ,為什么用unpack的方法查不到“6211”呢?不明白。

我對漢字編碼不是很了解,這個問題已經(jīng)困惑我兩天,查了很多資料也沒有進展。

論壇徽章:
0
4 [報告]
發(fā)表于 2005-03-21 13:32 |只看該作者

求獲取漢字unicode具體編碼的方法

我最近也在學(xué)習(xí)編碼解碼,我是這樣做的:

  1. use Encode;
  2. $a="我";
  3. $a=decode ("gb2312",$a);
  4. map {print "&#x",sprintf("%x",$_)}unpack ("U*",$a);
復(fù)制代碼

不知對不對?希望各位高手指點!

論壇徽章:
1
IT運維版塊每日發(fā)帖之星
日期:2016-03-09 06:20:00
5 [報告]
發(fā)表于 2005-03-21 15:55 |只看該作者

求獲取漢字unicode具體編碼的方法

經(jīng)過測試結(jié)果正確,這正是我需要的。感謝!

我一直在嘗試先用from_to($a,"gb2312","utf8",再用unpack解包,可怎么也得不到正確結(jié)果。

今天又學(xué)了一招

論壇徽章:
0
6 [報告]
發(fā)表于 2010-04-07 17:06 |只看該作者

論壇徽章:
0
7 [報告]
發(fā)表于 2010-04-07 22:59 |只看該作者
回復(fù) 3# unix666

我試了一下,可以按照如下方式獲得你想要的unicode編碼

  1. my $data="我山";
  2. my $bytes = unpack("H*",$data);
  3. print $bytes ."\n";

  4. my $characters = decode('utf8', $data);

  5. foreach my $char (split(//, $characters)) {
  6. printf("%s = %#x\n",encode("utf8",$char), ord($char));
  7. }
  8. [code]

  9. 運行結(jié)果:
  10. [code]
  11. e68891e5b1b1
  12. 我 = 0x6211
  13. 山 = 0x5c71
復(fù)制代碼

論壇徽章:
0
8 [報告]
發(fā)表于 2010-04-08 20:59 |只看該作者
哈哈,跟我的情況很類似阿。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(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