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

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

WBOY
リリース: 2016-06-13 12:49:25
オリジナル
912 人が閲覧しました

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

この投稿は shendaowu によって最終編集されました: 2013-04-06 19:11:46 長い間 Web デザインに携わってきたので、コーディング方法に関連する多くのことに遭遇しました。しかし、今日また文字化けに遭遇し、幸いにも検索した結果解決しました。
エンコードについて私が知っていることは次のとおりです:
1.
(このページのデコード方法をブラウザに通知します)
2.
文書保存時のエンコード方式
3.
データベースのエンコード方式 (データベースまたはテーブルの定義時に設定)
4.
SQL文のエンコード方式(「SET NAMES UTF8」で設定)

最後のエンコーディングは何で決まるのでしょうか?この場合:
静的ページはテキスト データ フレームを通じてデータを収集し、get メソッドを通じて別の PHP ページにデータを送信し、そのデータを挿入ステートメントに入れて SQL ステートメントを実行します。
このとき、このクエリ文のエンコード方法は何で決まるのでしょうか?静的ページのエンコード方法ですか、それとも動的ページのエンコード方法ですか、それとも他のものですか?とりあえず、UTF-8にしてみたら文字化けもせずに挿入できました。しかし、問題は、すべての挿入で「SET NAMES UTF8」設定を使用する必要があることです。SQL ステートメントのデフォルトのエンコード方式として UTF8 を設定するにはどうすればよいでしょうか。

他にエンコード方法に注意する必要がある部分はありますか?

-----解決策--------------------------------
すべての「エンコード方法」は出力ページに基づいています

mysql には適応型「エンコーディング」関数があります (他のデータベースについては明らかではありません)。つまり、返すように要求されたエンコーディングを返します

-----解決策----- ---------------
原則: エンコーディングの問題は、ほぼすべての IO で考慮する必要があります
システム/Webサーバーとphp自体は2つのコードであるため、php自体のロードは1回です
PHP 出力、クライアント システム/ブラウザー、および出力文字は 2 つのエンコーディングです
ファイルの読み取りと書き込み、データベースの読み取りと書き込み、インクルード...など
------解決策--------------------- -----------
見落とされがちなその他の事項
クッキー、これはありそうにありませんが、注意する必要があります
セッションでは、エンコーディングが異なる 2 つの PHP が同じセッションを使用する状況をテストしていません。
を試してみてください。 送受信 (curl、socket、API など)
他の言語と対話する
……
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート