「ブロック解除: UTF-8 へのパス」
P粉291886842
P粉291886842 2023-08-21 21:18:02
0
2
495

新しいサーバーをセットアップしており、Web アプリケーションで UTF-8 エンコーディングを完全にサポートしたいと考えています。過去に既存のサーバーでこれを試しましたが、常に ISO-8859-1 エンコーディングにフォールバックする必要がありました。

エンコーディング/文字セットはどこで設定する必要がありますか?これを実現するには、Apache、MySQL、および PHP を構成する必要があることはわかっていますが、従うことができる標準的なチェックリストや、不一致を排除できるトラブルシューティング方法はありますか?

これは、MySQL 5、PHP 5、および Apache 2 を実行する新しい Linux サーバーです。

P粉291886842
P粉291886842

全員に返信 (2)
P粉184747536

chazomaticus の優れた回答に何か追加したいと思います

:

META タグ (次のように、またはその HTML4 または XHTML バージョン

) を忘れないでください:

リーリー

これは些細なことのように思えるかもしれませんが、IE7 では以前に問題が発生したことがあります。

すべてを正しく実行しています。データベース、データベース接続、および Content-Type HTTP ヘッダーはすべて UTF-8 に設定されており、他のすべてのブラウザでは問題なく動作しますが、Internet Explorer は依然として「西ヨーロッパ言語」を使用することを要求します。エンコーディング。

ページに META タグが欠落していることが判明しました。追加したら問題は解決しました。

######編集:######実際、W3C には I18N 専用のかなり大きなセクション

があります。この問題に関連する記事が多数あり、HTTP、(X)HTML、CSS の側面について説明しています:

FAQ: (X)HTML ページのエンコードを UTF-8 に変更する
  • HTMLで文字エンコーディングを宣言する
  • チュートリアル: XHTML、HTML、CSS の文字セットとエンコーディング
  • HTTP 文字セット パラメータを設定する
  • 彼らは、HTTP ヘッダーと HTML メタ タグ (XML として提供される XHTML の場合は XML 宣言) の両方を使用することを推奨しています。
いいねを押す+0
    P粉032977207

    ######データストレージ###:###

    データベース内のすべてのテーブルとテキスト列に

    utf8mb4
      文字セットを指定します。これにより、MySQL は UTF-8 でエンコードされた値を物理的に保存および取得できるようになります。
    • utf8mb4_*

      照合順序が (明示的な文字セットなしで) 指定されている場合、MySQL は暗黙的にutf8mb4エンコーディングを使用することに注意してください。MySQL の古いバージョン (utf8

    • を使用する必要があります。冗談だったらよかったのに。
    • ######データアクセス###:###

    • アプリケーション コード (PHP など) では、使用するデータベース アクセス方法に関係なく、接続文字セットを
    utf8mb4

    に設定する必要があります。このように、MySQL はアプリケーションにデータを渡すとき、またはその逆のときにネイティブ UTF-8 からの変換を行いません。

    アプリケーションがテキストを他のシステムに転送する場合は、文字エンコーディングも伝える必要があります。 Web アプリケーションの場合、データが送信されるエンコードをブラウザーに (HTTP 応答ヘッダーまたはHTML メタデータ経由で) 伝える必要があります。

    いいねを押す+0
      最新のダウンロード
      詳細>
      ウェブエフェクト
      公式サイト
      サイト素材
      フロントエンドテンプレート
      私たちについて 免責事項 Sitemap
      PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!