2012-05-09 7 views
1

私は単純なjava Stringオブジェクトを持っており、XStreamを使用してシリアライズ/デシリアライズしたいと思っています。シリアライゼーションはうまくいきますが、この文字列がロシア語で書かれているように、デシリアライズ後に文字列のエンコーディングが壊れていることがわかります。XStreamエンコーディングが壊れています

Xstreamのこの問題やファイルの問題が特定のエンコーディングで記​​述する必要があるかどうかは誰にでも分かります。

ありがとうございました!

+0

http://stackoverflow.com/questions/1211624/how-do-i-encode-utf-8-using-the -xstream-frameworkこれが役立つかもしれない –

答えて

2

私は新しいXStreamのバージョンで、あなたはそれが正しく、それはパースになる時間によって右符号化方式を使用してデコードされますように、あなたのXMLストリームの読者にデコードを委任する必要があるからだと思います。

は、それが役に立つかもしれません、このを見てみましょう:http://x-stream.github.io/faq.html

はなぜXStreamのは、XML宣言のencodingを尊重しないのですか?

XStreamアーキテクチャはIOリーダーとライターに基づいており、XML宣言はXMLパーサーの役割を果たします。すべてのHierarchicalStreamDriverの実装はバージョン1.3以降のエンコーディングを尊重しますが、あなたがInputStreamを提供した場合のみです。 XStreamがReaderを消費する場合は、エンコーディングを行う読者の作業であり、XMLパーサーはReaderのエンコーディングを変更できず、XMLヘッダーのエンコーディング定義は無視されるため、適切なエンコーディングでリーダーを初期化する必要があります。

0

Xstream FAQをご覧になり、「エンコード」を検索してください。独自のライターを用意して、デフォルト以外のローカルエンコーディングを取得する必要があるようです。

上記のコメントのように、この質問がそれをカバー:

How do I encode UTF-8 using the XStream framework?

関連する問題