目次
php5.4 以降の GBK エンコーディングで htmlspecialchars の出力が空になる問題の解決策のまとめ htmlspecialchars
ホームページ バックエンド開発 PHPチュートリアル php5.4以降のGBKエンコードでhtmlspecialcharsの出力が空になる問題の解決策まとめ、htmlspecialchars_PHPチュートリアル

php5.4以降のGBKエンコードでhtmlspecialcharsの出力が空になる問題の解決策まとめ、htmlspecialchars_PHPチュートリアル

Jul 13, 2016 am 09:58 AM
dedecms gbk htmlspecialchars php5.4

php5.4 以降の GBK エンコーディングで htmlspecialchars の出力が空になる問題の解決策のまとめ htmlspecialchars

最も厄介な問題は htmlspecialchars ではないかと思います。もちろん htmlentities も影響を受けますが、中国語の Web サイトでは htmlspecialchars を使用するのが一般的であり、htmlentities はほとんど使用されません。

おそらく外国人は、Web ページは通常 utf-8 でエンコードされるべきだと考えているので、GB2312、GBK エンコードを使用する中国の Web サイトに悩まされているのかもしれません...!

具体的なパフォーマンス:
コードをコピーします コードは次のとおりです:
$str = "9enjoy.com の php バージョンは 5.2.10";
echo htmlspecialchars($str);

gbk 文字セットでの出力は空です...utf-8 では、出力は正常です。

その理由は、5.4.0 でのこの関数の変更にあります。
コードをコピーします コードは次のとおりです:
5.4.0 エンコーディングパラメータのデフォルト値がUTF-8に変更されました

それが何だった?
コードをコピーします コードは次のとおりです:
string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = 'UTF-8' [, bool $double_encode = true ]]] )

変換に使用されるエンコーディングを定義します。省略した場合、この引数のデフォルト値は、PHP 5.4.0 より前のバージョンでは ISO-8859-1、PHP 5.4.0 以降では UTF-8 です。
ISO-8859-1 であることが判明しましたが、5.4 以降はデフォルトで utf-8 になりました。この関数を中国語で使用すると、出力は空白になります。

国内のオープンソース プログラムの多くは 5.4 ではこのような問題が発生する可能性があり、DISCUZ 担当者もユーザーに 5.4 にアップグレードしないよう推奨しています。

解決策:

1. htmlspecialchars を使用するすべてのプログラムを修正するよう努めます

1.1 2 番目の $flags パラメータのデフォルトは ENT_COMPAT なので、

に変更されます


コードをコピーします コードは次のとおりです: htmlspecialchars($str,ENT_COMPAT,'GB2312');
なぜGBKではないのでしょうか? GBK パラメータがないため、強制的に GBK を使用すると、エラーが報告されます:


コードをコピーします コードは次のとおりです: 警告: htmlspecialchars(): utf-8 を想定した場合、文字セット `gbk' はサポートされていません
GBK を使用するには、次のように変更します:


コードをコピーします コードは次のとおりです: htmlspecialchars($str,ENT_COMPAT,'ISO-8859-1');
1.2. 同じ手順を変更しますが、パラメータを 1 つ省略できます。
ウェブページの先頭に
を追加できます

コードをコピーします コードは次のとおりです: ini_set('default_charset','gbk');
次に、それを
に変更します

コードをコピーします コードは次のとおりです: htmlspecialchars($str,ENT_COMPAT,'');
ドキュメントには次のように記載されています: 空の文字列は、スクリプト エンコーディング (Zend マルチバイト)、default_charset、現在のロケール (nl_langinfo() および setlocale() を参照) からの検出をこの順序で有効にします。
一般的な意味は次のとおりです: 空の文字列が渡されると、default_charset のエンコーディングが使用されます

1.3. 関数をカプセル化する... htmlspecialchars という単語はいつも覚えにくいです。


コードをコピーします コードは次のとおりです: 関数 htmlout($str) { 戻り値 htmlspecialchars($str,ENT_COMPAT,'ISO-8859-1');
}

次に一括置換に進みます。

2. ソースコードを直接変更して再コンパイルします。これは私が現在オンラインで取り組んでいる計画でもあります。

ext/standard/html.cを変更

372行目について


コードをコピーします コードは次のとおりです: /* デフォルトは UTF-8 になりました */ if (charset_hint == NULL)
cs_utf_8 を返します;

cs_utf_8 を cs_8859_1 に変更します


コードをコピーします コードは次のとおりです: /* デフォルトは UTF-8 になりました */ if (charset_hint == NULL)
cs_8859_1 を返す;

コンパイル後、元のプログラムを調整する必要はまったくありません。
インストール方法については、http://www.bkjia.com/article/63388.htmを参照してください

Windows では何をすればよいですか?これを自分でコンパイルする方法を見つけてみましょう、なかなか難しいです…

参照用の URL を提供します: http://www.bkjia.com/article/63391.htm

彼の言葉を引用すると、コーヒーとコーラを用意してください、準備をしてください、何時間もかかるかもしれません...

http://www.bkjia.com/PHPjc/978728.html

tru​​ehttp://www.bkjia.com/PHPjc/978728.html技術記事 php5.4以降のGBKエンコードでhtmlspecialcharsの出力が空になる問題の解決策まとめ htmlspecialcharsを旧バージョンからphp5.4にバージョンアップした際、一番困るのはhtmlspecialcharsではないかと思います…
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Go 言語エンコード分析: UTF-8 と GBK の比較 Go 言語エンコード分析: UTF-8 と GBK の比較 Mar 28, 2024 pm 01:54 PM

Go 言語エンコード分析: UTF-8 と GBK の比較 Go 言語では、文字列エンコードの処理は一般的なタスクの 1 つです。その中でも、UTF-8 と GBK の 2 つはよく使用される文字エンコード方式です。この記事では、UTF-8 と GBK を詳細に比較し、その違いと使用法について説明し、具体的なコード例を添付します。 1. UTF-8 と GBK の概要 UTF-8: UTF-8 は、世界中のほぼすべての言語の文字を表現できる可変長 Unicode エンコード方式です。 UTF-8

インペリアル cms リソース ネットワーク テンプレートはどこにありますか? インペリアル cms リソース ネットワーク テンプレートはどこにありますか? Apr 17, 2024 am 10:00 AM

Empire CMS テンプレートのダウンロード場所: 公式テンプレートのダウンロード: https://www.phome.net/template/ サードパーティのテンプレート Web サイト: https://www.dedecms.com/diy/https://www.0978.com。 cn /https://www.jiaocheng.com/インストール方法: テンプレートをダウンロード テンプレートを解凍 テンプレートをアップロード テンプレートを選択

dedecms がテンプレート置換を実装する方法 dedecms がテンプレート置換を実装する方法 Apr 16, 2024 pm 12:12 PM

テンプレートの置換は、次の手順で Dedecms に実装できます: global.cfg ファイルを変更し、必要な言語パックを設定します。 taglib.inc.php フック ファイルを変更し、言語サフィックス テンプレート ファイルのサポートを追加します。言語サフィックスを含む新しいテンプレート ファイルを作成し、必要な内容を変更します。 Dececms キャッシュをクリアします。

ローカルビデオを dedecms にアップロードする方法 ローカルビデオを dedecms にアップロードする方法 Apr 16, 2024 pm 12:39 PM

Dedecms を使用してローカルビデオをアップロードするにはどうすればよいですか? Dedecms がサポートする形式のビデオ ファイルを準備します。 Dedecms 管理バックエンドにログインし、新しいビデオ カテゴリを作成します。動画管理ページで動画ファイルをアップロードし、関連情報を入力して動画カテゴリを選択します。記事の編集中にビデオを埋め込むには、アップロードしたビデオのファイル名を入力し、サイズを調整します。

dedecms でできる Web サイトは何ですか? dedecms でできる Web サイトは何ですか? Apr 16, 2024 pm 12:24 PM

Dedecms は、ニュース Web サイト、ブログ、電子商取引 Web サイト、フォーラムおよびコミュニティ Web サイト、教育 Web サイト、ポータル、その他のタイプの Web サイト (企業 Web サイト、個人 Web サイトなど) を含む、さまざまなタイプの Web サイトの作成に使用できるオープン ソース CMS です。ウェブサイト、フォトアルバムウェブサイト、ビデオ共有ウェブサイト)

dedecmの使い方 dedecmの使い方 Apr 16, 2024 pm 12:15 PM

Dedecms は、コンテンツ管理、テンプレート システム、セキュリティ保護を提供するオープン ソースの中国製 CMS システムです。具体的な使用方法には次の手順が含まれます。 1. Dedecms をインストールします。 2. データベースを構成します。 3. 管理インターフェイスにログインします。 4. コンテンツを作成します。 5. テンプレートを設定します。 6. ユーザーを管理します。 7. システムを保守します。

dedecmsにはどのような抜け穴があるのでしょうか? dedecmsにはどのような抜け穴があるのでしょうか? Aug 03, 2023 pm 03:56 PM

DedeCMS はオープン ソースのコンテンツ管理システムであり、潜在的な脆弱性とセキュリティ リスクがいくつかあります: 1. SQL インジェクションの脆弱性。攻撃者は悪意のある SQL クエリ ステートメントを構築することで、不正な操作を実行したり、機密データを取得したりできます。2. ファイル アップロードの脆弱性。攻撃者は、次の内容を含むファイルをアップロードできます。悪意のあるコードをサーバーに送信して任意のコードを実行したり、サーバーの権限を取得したりする; 3. 機密情報の漏洩; 4. 認証されていない脆弱性の悪用。

正確で信頼性の高い dedecms 変換ツールの評価レポート 正確で信頼性の高い dedecms 変換ツールの評価レポート Mar 12, 2024 pm 07:03 PM

正確で信頼性の高い dedecms 変換ツール評価レポート インターネット時代の急速な発展に伴い、Web サイト構築は多くの企業や個人にとって必要なツールの 1 つになりました。 Web サイト構築において、コンテンツ管理システム (CMS) を使用すると、Web サイトのコンテンツと機能をより便利かつ効率的に管理できます。中でもdedecmsは有名なCMSシステムとして様々なWebサイト構築プロジェクトで広く利用されています。ただし、dedecms Web サイトを他の形式に変換する必要がある場合があります。その場合、変換ツールを使用する必要があります。

See all articles