1

エンコーディングの問題が発生して数週間困惑しており、何も機能していないようです。ローカル マシンで正常に動作する Web サイトを持っていますが、レビューのために jsp ファイルを Linux ボックスにプッシュすると、以前は正常にレンダリングされていた文字がファンキーな文字として表示されるようになりました。

何らかの理由で、一部の文字は正常に表示されますが、他の文字は正しくエンコードされません。ページ上のすべてのテキストは、Java .properties ファイルから読み取られ、Bean を使用してページに出力されます。

ページにメタ タグを追加してエンコーディングを設定しましたが、何もしませんでした。<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> も追加しましたが、これは Linux ボックスでは何もせず、実際にエンコード エラーがローカル Windows マシンに表示されました。

どんな助けでも大歓迎です。

4

4 に答える 4

1

プロパティをロードするメソッドが、プロパティ ファイルが実際に書き込まれている文字エンコーディングを使用していることを確認します。

これを明示的に設定しないと、ファイル システムのデフォルトのエンコーディングが使用され、Windows では ISO-Latin-1、一部の Linux ディストリビューションでは UTF-8 になります。

于 2010-03-22T20:51:22.533 に答える
1

Nixes と Nuxes で文字エンコーディングが適切に機能するには、以下を一緒に行う必要があります。

  • ファイルシステムのエンコーディング
  • データベースのエンコーディング (適用されないようです)
  • データベース コネクタのエンコーディング
  • Java 内部文字列エンコーディング (私の記憶が正しければ UTF-16)
  • Java 出力エンコーディング
  • HTML ページのエンコーディング

ページ ディレクティブでは、最後の箇条書きのみに対処しました。つまり、ブラウザーにページを UTF-8 としてデコードするように指示していますが、それはあなたが送信しているものではありません。

この (確かに数年前の) 論文、特に第 11 章を見てください。

于 2010-03-22T20:51:39.757 に答える
0

また、両方のマシンの物理ファイルを確認してください。いくつかの FTP クライアントが転送中にファイルをめちゃくちゃにするのを見てきました。簡単なチェックは、jsp ではなく html としてファイルをプッシュすることです。<% %>すべてのシーケンスでゴミが表示されますが、他のテキストは変更されずに表示されるはずです。また、アプリ サーバーを方程式から外しました。テキストがまだおかしい場合は、FTP または WebDAV クライアントが「助けよう」としている可能性があります。

于 2010-03-22T21:26:02.813 に答える
0

サーバーから送信された http ヘッダーを確認します。これは、ブラウザーが何よりも先にエンコーディングを探す最初の場所です。

于 2010-03-22T21:35:31.320 に答える