ホームページ > バックエンド開発 > PHPチュートリアル > php substr 中国語の文字化けコードの解決策

php substr 中国語の文字化けコードの解決策

高洛峰
リリース: 2016-11-29 16:16:22
オリジナル
1619 人が閲覧しました

substr を直接使用して中国語の文字列をインターセプトすると、中国語の文字が半分に分割されるため、必ず文字化けが発生します。なぜこれは、マシンの内部エンコーディングの問題によるものでしょうか。解決策

1. mbstring 拡張ライブラリ mb_substr インターセプトを使用すると文字化けが発生しません。

2. インターセプト関数を自分で作成しますが、効率は mbstring 拡張ライブラリを使用するほど高くありません。

3. インターセプトされた文字列を出力するだけの場合は、次の方法で実装できます: substr($str, 0, 30).chr(0)。

PHP のサンプル コードは次のとおりです。 * 中国語の文字化けを回避できます

* パラメータ $str は文字列、$start は開始文字、$len は終了文字

* インターセプトされた文字を返します

*/

function msubstr($str, $ start, $len) {

$tmpstr = "";//オープンソースコード phpfensi.com

$strlen = $start + $len)

for($i = 0; $i < $strlen; $ i++) {

if(ord(substr( $str, $i, 1)) > 0xa0) {

$tmpstr .= substr($str, $i, 2) } else

$tmpstr .= substr($str , $i, 1);

}

return $tmpstr;

方法 2、文字化けせずに中国語のテキスト文字列をインターセプトするための PHP メソッド、コードは次のとおりです

function gbsubstr($string, $start, $length) {

if(strlen($string)>$length){

$str=null;

for($i=$start;$i

if(ord(substr($string,$i,1))>0xa0){

$str.=substr($ string,$i,2);

$i++;

}else{

$str.=substr($string,$i,1);

}

}

$str.'. .';

}else{

$string を返す

}

;

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