Board logo

标题: [讨论]一点关于编码的认识 [打印本页]

作者: cnangel    时间: 2004-10-13 18:49     标题: [讨论]一点关于编码的认识

%E8%AE%80%E6%9B%B8
我們用的編碼不同...你用的是gb2312我用的是big5...
當然得不到...
你要先用
=~s/%//g;
得到E8AE80E69BB8
然後用pack("H*","E8AE80E69BB8");
取得Big5的編碼...正常會出現Big5的讀書..
至於GB2312的你要用
$string = unpack("H*","讀書");
先將GB2312的"讀書"轉成16進制...
注意編碼...UTF-8、GB2312、Big5都不大一樣....
上面是針對怎麼轉成16進制..針對 HTTP.....
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
你要用
$value = unpack("C*",$value);
然後用上面那行..就可以取得正確的結果....
試試看吧...
~~~~~~~~~~~~~~~~~~~~~~~~~~`

可能前面講得不夠清楚...給你一個代碼..你看看..
代码:
#!/usr/bin/perl
$code = unpack("H*","讀書");
for(my $i=0; $i<length($code);$i+=2){
  $char = substr($code,$i,2);
  $tmp .= "\%".uc $char;
}
print "$tmp\n";
$tmp=~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
print "$tmp\n";

記得把讀書改成你的編碼...





欢迎光临 星星博客 (http://commerce.huhoo.net/) Powered by Discuz! 7.0.0