ホームページ > バックエンド開発 > PHPチュートリアル > PHP 5.2.4 iconv 関数 TRANSLIT が信頼できない場合がある

PHP 5.2.4 iconv 関数 TRANSLIT が信頼できない場合がある

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-13 12:49:45
オリジナル
976 人が閲覧しました

php 5.2.4 iconv 関数 TRANSLIT は信頼できない場合があります

php バージョン 5.2.4

問題: ファイル文字列のトランスコーディング中のバイト単位の不適切な切り捨て

たとえば

$str = “公司”;                                  //默认以UTF-8编码
$str = Simple_Util_String::msubstr($str, 4);	// 按字节截取前4个字节,原字符串有6个字节
$str .= “adfadsfasdfadsfasdf”; 			//拼接后面的字符串  (执行下一步后,这些字符就消失了)
$str = iconv("UTF-8", "GBK//TRANSLIT",$str);    // 转码 , 遇到不认识的字符串进行转写
ログイン後にコピー

このステップを実行すると、「Company」の単語「SI」のエンコードが不完全で、iconv はそれを認識しませんでしたが、iconv はそれを音訳せずに切り捨てました。その結果、$str 以降の文字列が正常に変換されず、「adfadsfasdfadsfasdf」が失われていました。一部の商用製品、特に統計システムでは、これは非常に危険です。

解決策は次のとおりです:

iconv の 2 番目のパラメータを変更します。

$str = iconv("UTF-8","GBK//IGNORE", $str);
ログイン後にコピー

要約: iconv の TRANSLIT は信頼できません。認識できない文字列に遭遇すると切り捨てられる可能性があります。保険の方法は IGNORE を使用することです。

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