2017-10-23 12 views
0

私は非常に最初のAndroidアプリケーションで作業しています.2つの異なる形式のWebサービスからのJSONレスポンスにいくつかのアラビア語メッセージが表示されています。それらのうちの1つを表示すると、正しく翻訳されますが、他はエンコードされたメッセージのように印刷されます。エンコードされた文字列の問題

は、ここで最初のものである:意図したとおりに

\u0635\u0641\u0631 \u0627\u0644\u0645\u0638\u0641\u0631 

これは、適切なアラビア語の文字列に変換されます。 しかし

کامران 

は、私はそのUTF-8でエンコードされたメッセージことを期待していたしませんが、私はそれを変換することができませんでしだ。誰でもこのエンコードされたメッセージを理解するのを助けることができますか?ここで

は、私が変換しようとした方法であるが、その変わらない:

public String decodeString(String encodedString) { 
    try { 
    return new String(encodedString.getBytes(), "UTF-8"); 
    } catch(Exception e){ 
    e.printStackTrace(); 
    return encodedString; 
    } 
} 

任意のヘルプは高く評価されます。

このたびはお時間を頂き、誠にありがとうございます。

ここでメッセージを確認すると():http://www.cafewebmaster.com/online_tools/utf8_decode私は正しい応答を得ます。

両方のエンコーディングの違いは何ですか?

答えて

2

کامران UnicodeコードポイントのHTMLエンコードに似ています。 Apache Commons StringEscapeUtils.unescapeHtml()などを使用して、HTMLをデコードする必要があります。

ここでライブラリのGradleの依存関係です:私はそれをしようとしたとき

compile 'commons-lang:commons-lang:2.6' 
+0

あなたがこの形式(\ u0635用)のアイデアを持っていますか:http://www.cafewebmaster.com/online_tools/utf8_decodeでしたこれを理解できません。これはどのエンコーディングですか? – NoNaMe

+0

@RolandIllig良い点、私は答えを更新しました – Xiao

関連する問題