PHP中国語処理

WBOY
リリース: 2016-06-23 14:31:25
オリジナル
1116 人が閲覧しました

1. エンコード範囲
1. GBK (GB2312/GB18030)
x00-xff ASCII
xa1-xff 中国語

2. )

u4e00-u9fa5 (中国語)

x3130-x318F (韓国語
xAC00-xD7A3 (韓国語)
u0800-u4e00 (日本語)
ps: 韓国語は [u9fa5] より大きい文字です

通常の例:


//判断内容里有没有中文-GBK (PHP)function check_is_chinese($s){return preg_match('/[\x80-\xff]./', $s);} //获取字符串长度-GBK (PHP)function gb_strlen($str){$count = 0;for($i=0; $i<strlen($str); $i++){$s = substr($str, $i, 1);if (preg_match("/[\x80-\xff]/", $s)) ++$i;++$count;}return $count;} //截取字符串字串-GBK (PHP)function gb_substr($str, $len){$count = 0;for($i=0; $i<strlen($str); $i++){if($count == $len) break;if(preg_match("/[\x80-\xff]/", substr($str, $i, 1))) ++$i;++$count;}return substr($str, 0, $i);} //统计字符串长度-UTF8 (PHP)function utf8_strlen($str) {$count = 0;for($i = 0; $i <strlen($str); $i++){$value = ord($str[$i]);if($value> 127) {$count++;if($value>= 192 && $value <= 223) $i++;elseif($value>= 224 && $value <= 239) $i = $i + 2; elseif($value>= 240 && $value <= 247) $i = $i + 3;else die('Not a UTF-8 compatible string');}$count++;}return $count;}  //截取字符串-UTF8(PHP)function utf8_substr($str,$position,$length){$start_position = strlen($str);$start_byte = 0;$end_position = strlen($str);$count = 0;for($i = 0; $i <strlen($str); $i++){if($count>= $position && $start_position> $i){$start_position = $i;$start_byte = $count;}if(($count-$start_byte)>=$length) {$end_position = $i;break;}$value = ord($str[$i]);if($value> 127){$count++;if($value>= 192 && $value <= 223) $i++;elseif($value>= 224 && $value <= 239) $i = $i + 2;elseif($value>= 240 && $value <= 247) $i = $i + 3;else die('Not a UTF-8 compatible string');}$count++; }return(substr($str,$start_position,$end_position-$start_position)); }  //字符串长度统计-UTF8 [中文3个字节,俄文、韩文占2个字节,字母占1个字节] (Ruby)def utf8_string_length(str)temp = CGI::unescape(str)i = 0;j = 0;temp.length.times{|t|if temp[t] <127i += 1elseif temp[t]>= 127 and temp[t] <224j += 1if 0 == (j % 2)i += 2j = 0endelsej += 1if 0 == (j % 3)i +=2j = 0endend}return i} //判断是否是有韩文-UTF-8 (JavaScript)function checkKoreaChar(str) {for(i=0; i<str.length; i++) {if(((str.charCodeAt(i)> 0x3130 && str.charCodeAt(i) <0x318F) || (str.charCodeAt(i)>= 0xAC00 && str.charCodeAt(i) <= 0xD7A3))) {return true;}}return false;}//判断是否有中文字符-GBK (javascript)function check_chinese_char(s){return (s.length != s.replace(/[^\x00-\xff]/g,"**").length);} 
ログイン後にコピー

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート