关于BIG5-HKSCS的解决方法
程序员文章站
2022-04-28 14:22:31
非常苦悶地發現,原來一直困擾的hkscs問題php一直也支持。只不過名稱不叫hk-scs,叫big5-hkscs。 以下是hk增補字符集的解決方案: html頁面設為utf...
非常苦悶地發現,原來一直困擾的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;
}
}
以下是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;
}
}
推荐阅读
-
Python中的Socket 与 ScoketServer 通信及遇到问题解决方法
-
关于竞价推广的2个特性 居然有50%的竞价小白不知道
-
asp.net下出现其中的组件“访问被拒绝”的解决方法
-
关于竞价推广 竞价员们最怕的5个账户问题!一次说清
-
生鲜电商肉搏战:一场关于供应链成本和效率的争夺战
-
WEB上调用HttpWebRequest奇怪问题的解决方法
-
Python BeautifulSoup中文乱码问题的2种解决方法
-
关于python之字典的嵌套,递归调用方法
-
php中url传递中文字符,特殊危险字符的解决方法
-
关于php程序报date()警告的处理(date_default_timezone_set)