关于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;
 }
}

相关文章

PHP函数实现分页含文本分页和数字分页

PHP函数实现分页含文本分页和数字分页

最近,在项目中要用到分页。分页功能是经常使用的一个功能,所以,对其以函数形式进行了封装。 // 分页分装 /** * $pageType 分页类型 1是数字分页 2是文本分页 * 可...

探讨php中遍历二维数组的几种方法详解

在PHP应用当中,二维数组的应用算是高频率的了,尤其遇到较为复杂的计算时,基本上都要用到二维或者多维数组的,而在编历多维数组使用的较多的应该是 for 循环遍历和 foreach 遍历两...

php从文件夹随机读取文件的方法

本文实例讲述了php从文件夹随机读取文件的方法。分享给大家供大家参考。具体实现方法如下: function RandomFile($folder='', $extensions='....

PHP守护进程的两种常见实现方式详解

本文实例讲述了PHP守护进程的两种常见实现方式。分享给大家供大家参考,具体如下: 第一种方式,借助 nohup 和 &  配合使用。 在命令后面加上 & 符号, 可以让启动的进...

php中检查文件或目录是否存在的代码小结

下面是一个简单的检查文件是否存在的实例代码: 复制代码 代码如下: <?php $filename = '/path/to/foo.txt'; if (file_exists($f...