ホームページ >バックエンド開発 >PHPチュートリアル >注意が必要なコーディング方法はありますか?

注意が必要なコーディング方法はありますか?

WBOY
WBOYオリジナル
2016-06-23 14:04:571141ブラウズ

長い間 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 などの送受信や、他の言語との対話を試すことができます。
...

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。