2011-07-28 23 views
-1

UTF-8エンコーディングが失敗したときに拡張ASCII文字のUnicode置換文字を避けるにはどうすればよいですか?Unicode置換文字

JavaのUnicodeエンコーディングを避けることによって、拡張ASCII文字を保持する方法はありますか?

+3

「拡張ASCII」はありません。 ASCIIは文字の値0〜127を定義します。 –

答えて

4

エンコード UTF-8でのUnicodeデータは、に失敗しません。 すべて Unicode文字はUTF-8でエンコードすることができます。したがって、メモリや類似のものが不足している場合を除き、エラー条件はありません。

デコード UTF-8の場合、入力が実際にUTF-8でない場合に失敗する可能性があります。その場合、UTF-8で解読しようとするのは間違ったアプローチであり、正しいことを行うために「UTF-8を修正する」方法はありません。正しいエンコーディングを選択する必要があります。

が正確にであることを示すためのサンプル入力とコードを提供できますか。問題がありますか?

-1

ユニコードエンコードを避ける理由はまったくありません。実際の問題には、古いエンコーディングが不十分です。

すべてのファイルをUTF-8で変換し、システムプロパティfile.encodingをUTF-8に設定してアプリケーションを起動します。

java -Dfile.encoding=UTF-8 

詳細な回答が必要な場合は、さらに詳しい情報を入力してください。

+1

より良い解決策は、システムプロパティが「正しく」設定されているのではなく、コードで使用するエンコーディングを指定することです。 –

+0

データベースでは、データにÔやæなどの文字が含まれています。Javaアプリケーションは、これらの文字を含むXML文字列を返します。しかし、アプリケーションがWebサービスとして扱われ、軸1.4のSOAPクライアントの場合はエンコーディングが失敗しますが、xfire soapクライアントの場合は失敗しません。 Axisの場合、そのような文字(Ôまたはæ)は置換結果としてchar - \ ufffdとして表示されます。 Axisはutf-8を使用しています。なぜこれが起こっているのか分かりません。私たちのアプリケーションは、Axis石鹸クライアントunfortunatleyを使用する必要があります。どんな助けも高く評価されます。前もって感謝します。 –