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 的大升级

版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。
http://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

Trackback Pings

TrackBack URL for this entry:
http://cgi.windtear.net/cgi-bin/wt-tb.cgi/704

Comments

Post a comment

Remember Me?



我爱网络
2007-12-31 23:51 2007年度 ipcn.org/ipchina.org 总结报告
2007-12-31 00:31 vmware gsx server service
2007-12-31 00:15 squid 对 404 302 缓存的相关问题
2007-12-30 14:24 升级到 MovableType 3.3x 并修改 entry_basename 兼容性
2007-12-30 13:52 [php] realip judge 前面补0的ip格式剔除
2007-12-14 16:34 rm -rf * 系统管理员要排查的定时炸弹
2007-12-13 19:03 山西的宽带运营商太过分了 私自窜改dns解析
2007-12-13 16:35 F5 MIB 再学习 唯一性标记用地址的小bug
2007-12-11 22:15 perl 用Spreadsheet::WriteExcel写了个处理/读写excel的小程序
2007-12-11 13:39 perl 变量转义的问题

本站使用中的任何问题,请与 windtear SPAM windtear SPAM net 联系
Copyright© 1999-2008 Windtear. All rights reserved.
京ICP备05050670号