关于BIG5-HKSCS的解决方法

yipeiwu_com6年前PHP代码库
非常苦悶地發現,原來一直困擾的HKSCS問題PHP一直也支持。只不過名稱不叫HK-SCS,叫BIG5-HKSCS。
以下是HK增補字符集的解決方案:
HTML頁面設為UTF-8,
寫入數據庫前先:iconv('big5-hkscs','utf8', $string)
需轉為UNICODE就用以下函數
function String2Unicode($data, $language)
{
 $data = nl2br(trim($data));
 $data = str_replace('<br />',chr(13),$data);
 $str = '';
 preg_match_all("/[\x80-\xff]?./",$data,$ar);
 debug($ar); 
 foreach($ar[0] as $v)
 {
  if($v != '' && $v!=chr(13))
  {
   $str .= "&#".utf82unicode(iconv($language,"UTF-8",$v)).";";
  }else {
   $str .=$v;
  }
 }
 return $str;
}
function utf82unicode($c) {
 switch(strlen($c)) {
  case 1:
   return ord($c);
  case 2:
   $n = (ord($c[0]) & 0x3f) << 6;
   $n += ord($c[1]) & 0x3f;
   return $n;
  case 3: 
   $n = (ord($c[0]) & 0x1f) << 12;
   $n += (ord($c[1]) & 0x3f) << 6;
   $n += ord($c[2]) & 0x3f;
   return $n;
  case 4:
   $n = (ord($c[0]) & 0x0f) << 18;
   $n += (ord($c[1]) & 0x3f) << 12; 
   $n += (ord($c[2]) & 0x3f) << 6;
   $n += ord($c[3]) & 0x3f;
   return $n;
 }
}

相关文章

php5.3 注意事项说明

php5.3新特性1.支持命名空间(namespace)5.3以前复制代码 代码如下:<?phpclass Zend_Db_Table_Select {//表示当前这个类文件位于Z...

PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】

本文实例讲述了PHP mongodb操作类定义与用法。分享给大家供大家参考,具体如下: 在别人基础上修改的mongodb操作类,适合mongodb2.x和mongodb3.x <...

php抓取并保存网站图片的实现代码

此程序实现了网页源代码捕获,图片链接获取、分析、并将同样的图片链接合并功能,实现了图片抓取功能。利用php强大的网络内容处理函数将指定的网站上的所有图片抓取下来,保存在当前目录下,以下为...

PHP实现获取域名的方法小结

本文实例总结了PHP实现获取域名的方法。分享给大家供大家参考。具体实现方法如下: 方法一(用 系统变量)    复制代码 代码如下://缺点不使用传递过来的地址和不支持系统变量的主机  ...

php将12小时制转换成24小时制的方法

本文实例讲述了php将12小时制转换成24小时制的方法。分享给大家供大家参考。具体如下: php将12小时制转换成24小时制,输入格式为:02:30:00 pm 转换成:14:30:00...