返回列表 回复 发帖
所需阅读权限 1

[讨论]一点关于编码的认识

%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";

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

                     我是一个呼吸着现在的空气而生活在过去的人
               这样的注定孤独,孤独的身处闹市却犹如置身于荒漠
                                     我已习惯了孤独,爱上孤独
                                 他让我看清了自我,还原了自我
                             让我再静静的沉思中得到快乐和满足
                                   再孤独的世界里我一遍又一遍
                                   不厌其烦的改写着自己的过去
                                             延伸到现在与未来
                                       然而那只是泡沫般的美梦
                                 产生的时刻又伴随着破灭的到来
                         在灰飞烟灭的瞬间我看到的是过程的美丽
                                      而不是结果的悲哀。。。
返回列表