« 环境变量 Environment Variable | Main | 今天是水木提供blog服务两周年 »
December 8, 2005
又见编码与解码 javascript escaped UNICODE string 的解码 (php&perl)
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。 https://windtear.net/archives/2005/12/08/000849.html http://windtear.net/archives/2005/12/08/000849.html 又见编码与解码 javascript escaped UNICODE string 的解码 (php&perl) 先列出两篇相关blog 2005-06-30 23:52 我爱网络 perl 的 Unicode 处理, 5.6.1 到 5.8.0 的大升级 2004-05-23 01:54 我爱网络 UTF-8 今天的主题 刚才看到feuvan在HAPPY提《convert js escaped string to PHP readable》 就想到了6月份我上PV系统时处理各种编码解码问题的情景 feuvan同学提的是php语言 比如: %u4EE3 -> 代 ->代 看到 %u 后面4个字节则为 javascript escaped string (当有 UTF 字符时编码为 %uXXXX 样子 如果没有 UTF 字符 则为 %XX%XX) 把十六进制的 4EE3(XXXX) 转成十进制的 20195 (php 函数为 hexdec perl 函数为 hex) 根据 《UTF-8 今天的主题》 提到的对应 可以这样转成 unicode (摘自php.net) function code2utf($n){ if($n<128)return chr($n); if($n<2048)return chr(($n>>6)+192).chr(($n&63)+128); if($n<65536)return chr(($n>>12)+224).chr((($n>>6)&63)+128).chr(($n&63)+128); if($n<2097152) return chr(($n>>18)+240).chr((($n>>12)&63)+128).chr((($n>>6)&63)+128) .chr(($n&63)+128); return ''; } 体现在我的PV系统里面 和20050630提到的处理方法一样 utf-8 解码再 euc-cn 编码就行了 use Encode; $terms=encode("euc-cn", \ decode("utf-8",chr(($n>>12)+224).chr((($n>>6)&63)+128).chr(($n&63)+128))); |
Posted by windtear at December 8, 2005 11:55 PM