proxy代理   soft软件   IT 业界特快   norton 诺顿病毒库   代理列表   search FTP搜索   whois IP地理位置   blog 追求完美  
money理财   life生活   RSS聚合门户   firefox WEB浏览器   免费域名   typeset 假古文   AntiVirus 反病毒   ipcn 站点导航  

« 恭祝水木社区正式开站 | Main | Squid 缓存加速与CMS系统设计 »

June 30, 2005

perl 的 Unicode 处理, 5.6.1 到 5.8.0 的大升级

版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。
https://windtear.net/archives/2005/06/30/000704.html http://windtear.net/archives/2005/06/30/000704.html

前两天调我的PV系统
分拆refer中google搜索关键词时遇到一个问题
google默认是UTF-8编码的
这样如果按简单的方法就不行了
所谓简单的方法就是进行 unescape 操作

2004-05-23 01:54 我爱网络 UTF-8 今天的主题
这篇blog提到的
#!/usr/bin/perl
use URI::Escape;
print uri_unescape('%CC%F4 %D5%BD %B1%AD');
其实完全没有必要  直接正则就可以搞定
s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg

在 gb2312 编码下处理同样的方法对待UTF-8不行
而 perl 5.6.0 5.6.1 都没有 Unicode 模块
perl 5.8.0 发布才真正对 Unicode 进行较好的支持的
这也是 5.8.x 的一个主要特性
http://www.perl.com/pub/a/2003/01/16/whatsnew.html

后来前面的unescape相关保留
加了一下Unicode处理代码  也即先解码再编码
+                       use Encode;
+                       $terms = encode("euc-cn",decode("utf-8",$terms));

当然这些都要控制 html 输出meta的 charset

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

本blog WWW

Posted by windtear at June 30, 2005 11:52 PM

本站使用中的任何问题,请与 windtear @ windtear.net 联系
Copyright© 1999-2024 Windtear. All rights reserved.