关于BIG5-HKSCS的解决方法
                        
                            时间:2021-07-01 10:21:17
                            帮助过:58人阅读
							                        
                     
                    
                    
            非常苦悶地發現,原來一直困擾的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; 
 } 
}