php で文字列をインターセプトする際の文字化けの解決策: ASCII エンコーディングと中国語エンコーディングの一貫性のないバイナリ範囲を使用してそれらを区別し、さらに substr() 関数を通じて文字列をインターセプトできます。
解決策のアイデア:
ASCII エンコードと中国語エンコードの一貫性のないバイナリ範囲を使用して区別し、substr() を使用します。文字列をインターセプトする機能。
(推奨チュートリアル: php ビデオ チュートリアル)
コードは次のとおりです:
注: これは utf-8 専用です。エンコーディング
<?php header('content-type:text/html;charset=utf-8;'); $str = '利要a-符e:r ttnx节小-子s区。vh;peh。例t来个oe体字n代gb节看t通c eu是的soS至什tna过码 t;Ie看C实e/,字le A来具8y么a)n=于ndg是r于 0tmt现码 e0ssf8单下s(uo别e的以ieh过aatx和t接要u几这看 nsw Ihrr用字 mgtts上就eg cAei的nwo码e跳h,t编'; /* *在某篇文章中截取一段字符串,多余的用省略号...表示,并且防止中文乱码 *$param1 string要截取的字符串 $str 注意:这里是utf-8编码 *$param2 int截取字符串的长度 $len *返回值 成功返回所要截取的字符串,失败为空 */ function str($str='',$len=0){ //检查参数 if(!is_string($str) || !is_int($len)){ return ''; } $length = strlen($str); if($length <= 0 ){ return ''; } if($len>=$length){ return $str; } //初始化,统计字符串的个数, $count = 0; for($i=0;$i<$length;$i++){ //达到个数跳出循环,$i即为要截取的长度 if($count == $len){ break; } $count++; //ord函数是获取字符串的ASCII编码,大于等于十六进制0x80的字符串即为中文字符串 if(ord($str{$i}) >= 0x80){ $i +=2;//中文编码的字符串的长度再加2 } } //如果要截取的个数超过了字符串的总个数,那么我们返回全部字符串,不带省略号 if($len > $count){ return $str; }else{ return substr($str,0,$i).'...'; } }
関連する推奨事項: phpトレーニング
以上がPHPでインターセプトした文字列が文字化けしている場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事
Inzoi:学校と大学への応募方法
1 か月前ByDDD
Atomfallのサイトオフィスキーを見つける場所
1 か月前ByDDD

ホットツール

SublimeText3 中国語版
中国語版、とても使いやすい

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ドリームウィーバー CS6
ビジュアル Web 開発ツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ホットトピック
Gmailメールのログイン入り口はどこですか?
7909
15


Java チュートリアル
1652
14


CakePHP チュートリアル
1411
52


Laravel チュートリアル
1303
25


PHP チュートリアル
1248
29

