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つの解決策。
これはJSPページでのみ役立ちますが、... – Noah