ホームページ >バックエンド開発 >PHPチュートリアル >注意が必要なコーディング方法はありますか?
長い間 Web デザインに携わってきたので、コーディング方法に関連する多くのことに遭遇しました。しかし、今日またコード化けに遭遇し、幸いにも検索した結果解決しました。
注意が必要なエンコード方法について私が知っていることは次のとおりです。
1.
2.
ドキュメント保存時のエンコード方法
3.
データベースのエンコード方法(データベースまたはテーブルの定義時に設定)
4.
SQL ステートメントのエンコード方法(設定"SET NAMES UTF8" を使用)
最後の エンコード方法は何によって決まりますか?この場合:
静的ページはテキスト データ フレームを通じてデータを収集し、それを get メソッドを通じて別の PHP ページに送信します。この PHP ページは、このデータを INSERT ステートメントに入れて、この SQL ステートメントを実行します。
現時点でこのクエリ文のエンコード方法は何で決まるのでしょうか?静的ページのエンコード方法ですか、それとも動的ページのエンコード方法ですか、それとも他のものですか?とりあえず、UTF-8にしてみたら文字化けもせずに挿入できました。しかし、問題は、すべての挿入で「SET NAMES UTF8」設定を使用する必要があることです。SQL ステートメントのデフォルトのエンコード方式として UTF8 を設定するにはどうすればよいでしょうか。
他にエンコード方法に注意する必要がある領域はありますか?
すべての「エンコーディング方法」は出力ページに基づいています
MySQL には適応型「エンコーディング」機能があります (他のデータベースは明確ではありません)。エンコーディングはどんなコードでも返します
原理は次のとおりです: ほぼすべての IO はエンコーディングの問題を考慮する必要があります
システム/Web サーバーと PHP 自体は 2 つのコードであるため、PHP 自体のロードは 1 回です
PHP 出力、クライアントsystem/browse コンバーターと文字出力は 2 つのエンコーディングです
ファイルの読み書き、データベースの読み書き、インクルードなど
無視されやすい Cookie についてもいくつか触れておきます。
セッションにも注意する必要があります。私はテストしていません。異なるエンコーディングを持つ 2 つの PHP が同じセッションを一緒に使用する場合は、
Curl、ソケット、API などの送受信や、他の言語との対話を試すことができます。
...