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

« 环境变量 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)));
本blog WWW

Posted by windtear at December 8, 2005 11:55 PM

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