2

私は 1 年間、環境が (apache、php、html5、および javascript) である Web アプリケーションを開発しました。これまではエンコードの問題を気にしませんでした。それは魔法のようでした。構成ファイルで mysql 接続をUTF-8 と忘れてください。
しかし、経験を積むと、この環境でエンコーディングの問題がどのように解決されるかを完全に理解する必要がある場合に直面しました。
明確にするために:

  • Javascript 文字列は UTF-16 です
  • HTTP トランスポートのエンコーディングは任意です。
  • PHP 文字列はバイナリです。
  • Mysql接続も任意です。

変換がどのように行われるか、および私が気にする必要がある可能性のある問題は何ですか。

4

2 に答える 2

5

それらは恣意的ではありません。したがって、一般に、すべてを UTF-8 にすることができ、問題ありません。

Javascript 文字列は内部的に UTF-16 のみです。送信する JS ファイルは UTF-8 にすることができます。応答のエンコーディングをブラウザに伝えると、ブラウザは必要なエンコーディングに変換できます。問題は、実際に送信するものとは異なるエンコーディングを指定した場合にのみ発生します。

なぜ UTF-8 なのか?

  • すべての ANSI エンコーディングには、すべての文字を指定する際に問題があります (256 文字しか入力できません)。
  • 通常、UTF-8 は最もコンパクトな Unicode 形式であり、特に西洋言語を転送する場合は特にそうです。
  • UTF-8 は、Linux と Windows の間のバイト オーダー マークの違いの影響を受けない唯一の Unicode エンコーディングですが、これも通常気にする必要はありません。

推奨読書: すべてのソフトウェア開発者が絶対に、積極的に Unicode と文字セットについて知っておく必要がある絶対的な最小値 (言い訳はありません!)

于 2013-08-05T08:51:27.707 に答える