ホームページ > バックエンド開発 > PHPチュートリアル > htmlspecialchars($value) により中国語の文字が失われる

htmlspecialchars($value) により中国語の文字が失われる

WBOY
リリース: 2016-06-23 14:17:15
オリジナル
1007 人が閲覧しました

GB2312 ページエンコーディングを使用して、ソースコードのセットをダウンロードしました。
ckeditor とバックグラウンド管理は、htmlspecialchars($value) を使用して中国語を処理し、HTML の危険な文字をフィルターで除外するために呼び出されます。
問題は、htmlspecialchars($value) を使用して中国語の文字を処理した後、それらがすべて空になる理由がわからないことです。
後で情報を読んで、次のように呼び出す必要があると言いました:
htmlspecialchars($value, ENT_NOQUOTES, "gb2312")


質問は次のとおりです。すべてをこのように変更したいのですが、あまり変更は加えません。 ckeditor のような開発者はこのことを知っていますか?
ソースコードを変更しないことが最善です。助けてください。


ディスカッションへの返信(解決策)

php.ini に、default_charset="gb2312" というエンコード設定があります。試してみてください

テストした結果、あなたが指摘した問題は見つかりませんでした

さらに、htmlspecialchars は特殊文字を変換しますHTML の危険な文字を除外するというものではなく、HTML エンティティに変換します

この関数は、特殊文字を HTML 文字列形式 ( &....; ) に変換します
これを渡すときに文字化けしない限り、これは中国語とは何の関係もありませんまずは渡した内容を確認しましょう

私のマシンはXP + easyphp5.4.0RC4
実行してください

<?php	$str = "111<b>中文字符啦....</b>";	echo "原样输出为.$str <br>";	echo "处理后:" . htmlspecialchars($str);?>
ログイン後にコピー


戻り値は本当にnullです。
その他の処理は行われませんでした。


easyphp5.4.0RC4
php バージョン 5.4 はバカですか?
まだそれほど贅沢ではありません、私はまだ php5.3.6 を使用しています

本当に php5.4 である場合は、php バグ Web サイトにエラーを報告してください


テストの結果、それは正しく、戻り値は正しくないことがわかりました空です
私のマシンは XP + easyphp5 .4.0RC4 です
HTML コードを実行します

$str = "111中国語文字....";
echo "元の出力is .$str
";
echo "処理後: " . htmlspecialchars($str);
?>




真の null 値を返します。
その他の処理は行われませんでした。

統合環境を見てみると次のようになりました:

rreee

これはバージョンの問題です。 PHP 5.4.0RC4 VC9 はまだベータ版であるはずです。まだ多くのバグがあります..


作者はEasyPHP 5.3/EasyPHP 5.2に変更するだけかもしれません。

はい。 5.3に変更しました。案の定、うまくいきました。皆さん、ありがとうございました。

古いフレームを確認できますか?

php5.4 でもこの問題が発生しました:

    PHP 5.4.0RC4 VC9    Apache 2.2.21 VC9    MySQL 5.5.19    PhpMyAdmin 3.4.9    Xdebug 2.1.2
ログイン後にコピー

$content = htmlspecialchars($_POST['content']);
ログイン後にコピー
を追加した後、解決されました
,ENT_COMPAT ,'GB2312'
ログイン後にコピー

php5.5 問題はまだ必要です。パラメータは完了する必要があります。

php5.5 でも同様の問題が発生しました。背景を見ると、タイトルがすべて空でした。コードを検索すると、htmlspecialchars 関数に問題があることがわかりました。どうすればよいでしょうか。

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