Home >Backend Development >PHP Tutorial >big Solution to BIG5-HKSCS

big Solution to BIG5-HKSCS

WBOY
WBOYOriginal
2016-07-29 08:36:511877browse

It was very frustrating to find that PHP has always supported the HSCCS problem that has always been bothering me. But the name is not HK-SCS, but BIG5-HKSCS.
The following is the solution for HK's supplementary character set:
Set the HTML page to UTF-8,
Before writing to the database: iconv('big5-hkscs','utf8', $string)
If you need to convert to UNICODE, use the following Function
function String2Unicode($data, $language)
{
$data = nl2br(trim($data));
$data = str_replace('
',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;
}
}

The above introduces big's solution to BIG5-HKSCS, including big aspects. I hope it will be helpful to friends who are interested in PHP tutorials.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn