9

Java のリテラル文字列で文字セットの問題が発生しています。

下の画像でわかるように、リテラル文字列定数パラメーター「Título」を持つ TITULO という静的オブジェクトがあります。プログラムを実行すると、この String は "TÃ-tulo" として読み取られます。どうしてか分かりません。

Eclipse デバッグ ビュー

Eclipse プロジェクト プロパティ ウィンドウと Tomcat 設定で文字セット設定を調べますが、それらはすべてオプションとして UTF-8 を使用しています。

Tomcat 7、Eclipse Helios、および Windows SO を実行しています。

誰でもこの問題で私を助けることができますか?

4

3 に答える 3

1

Eclipseエディターにあるコードは、tomcatが実行しているコードと同じではありません。

/targetフォルダーに.warファイルが見つかりました。このwarファイルを削除して動作します!Tomcatは、この古いwarファイルからクラスを実行していました。

私は最近、この実行中のEclipseプロジェクトをMavenプロジェクトに変換しました。このwarファイルを作成したこのプロセスで「mvnpackage」を実行した可能性があります。

私がこの解決策を見つけたのを助けてくれてありがとう。

于 2012-10-16T01:07:25.287 に答える
1

server.xmlでTomcatURIEncodingをUTF-8に設定してみてください。

<Connector port="8090" URIEncoding="UTF-8"/>
于 2012-10-16T00:04:40.903 に答える
0

あなたが見ている文字列 (this.id) は、実際には静的定数文字列 Titulo ではないと思います。

コードのどこかで、適切な unicode 文字列タイトルを読み取り、それをバイト配列に変換してから、文字列に変換して Style のコンストラクターに渡しています。変換中に文字列が壊れています。Style のコンストラクターを呼び出すコードのスタック トレースを表示しない限り、これ以上は言えません。

于 2012-10-15T23:41:05.953 に答える