2010-11-18 10 views
2

jetty文字のエンコーディングに問題があります。 jettyサーバーをMac(OSX)にインストールすると、正常に動作します。しかし、それがUbuntu(10.10)にインストールされていると、文字エンコーディングが適切ではありません。これは、LinuxJetty文字エンコーディングの問題

上のサーバーによって提供されるページの「ニューヨークTimes�ベストセラー」として示されているニューヨークTimes®ベストセラー

問題を持つページ(URLではない)で単語がありますHIGHTIDE-7.0.2.v20100331

、それがMac上でサーバーが提供するページの「ニューヨークTimes®ベストセラー」として示されている

桟橋サーバのバージョンがある(これは正しいです)

配信されるファイルの文字エンコードは次のとおりです。UTF -8

あなたはすべての設定は、この問題を克服するために変更する必要がある場合は私に知らせてくださいことはできますか?

ありがとうございます!

答えて

3

私にとって、それはJSPのエンコーディングヘッダー欠落していました:

<%@ page contentType="text/html;charset=UTF-8" language="java" %> 
+0

これはJSPページでのみ役立ちますが、... – Noah

5

を私は桟橋8と同様の問題があったとビン/ jetty.shに次の行を追加して、それを解決:

JAVA_OPTIONS+=("-Dfile.encoding=UTF-8") 
3

Iもこのような問題を抱えていて、私は彼の答えのためにaditsuに感謝したい。

私はUbuntuの12.04(及び14.04)上の桟橋サーバーの上のRestletを使用しています。このrestletアプリケーションは、proxyPassとして機能するApacheサーバーの背後にあります。

すべてのファイルはUTF-8です。
すべてのHTTP応答にはContent-Type text/htmlがあります。 charset = UTF-8。
すべてのファイルが<メタコンテンツ= "text/htmlのを;のcharset = UTF-8" が含まれます。http-当量= "コンテンツタイプ"/>

奇妙なことだったサーバの起動と私はサイトを参照したときに、文字エンコーディングはUTF-8ではなかったので、私はそれらの面白いキャラクターをすべて手に入れました。すべての信号がサーバーとエージェントに伝えられていても、UTF-8の間のすべてがエンコードされて使用されています。

サーバの起動後にサービスを手動で再起動すると、すべての文字は正常です。私は簡単に答えを見つけることができなかったので、誰がこの誤ったエンコーディングを引き起こしたのか分からず、私は手動でサービスを再開し続けました。当時

私の候補者は次の通りであった:Apacheのは、Ubuntuのサービスの起動順序、のRestletフレームワーク、実際に使用されるファイルのエンコード、HTTPヘッダ、HTMLメタタグ。しかし、すべてはそれがそうなっていた通りだった。

だから最後に、それは私が唯一のこの問題を数回再訪した後、ちょうど今考えられている桟橋ました。ブート時に開始、なぜ私はまだ手掛かりを持っていない

はすべて間違っをコードする文字を作り、サービスを手動で再起動した後、エンコードが正しいです。余分なJAVA引数 '-Dfile.encoding = UTF-8'を追加すると、すべてが終了しました。彼の解決策を共有してくれたaditsuにもう一度感謝します!

乾杯

編集: も問題を解決するための起動スクリプトでLANG環境変数をSettting。私。

輸出LANG = EN_US.UTF-8

実際、これは起動時に桟橋サーバの起動との間の差である(LANGは、ボックスの外に定義されていない)と、シェルから出発。それで、同じ問題の2つの解決策。

0

あなたはおそらく生のhttpエンコーディングを直接読んでいるので、デコーダを使ってutf8にデコードする必要があります。

使用java.net.URLDecoder 行= URLDecoder.decode(行、 "UTF-8");

テキストをhtml charsetにエンコードするには、Java Stringを直接ポストするときのようにURLEncoderを使用します。 line = URLEncoder.encode(line、 "UTF-8");

+0

コードの書式を追加してください。 –

関連する問題