2013-12-21 20 views
5

の文字セットと同じであるかどうかを確認することができますか?は、どのように私は、文字列の文字セットが、私は、文字列が</p> <p>ことが可能とされているデバイスの言語の文字でない文字が含まれているかどうかを検出するデバイスの設定言語

私のアプリのユーザーのいくつかはアラビア語で書いてあり、残りは英語で書いています。テキストはアラビア語であり、ユーザーのデバイスは、英語または

+0

「デバイスの言語」とはどういう意味ですか? – Harald

+0

これは文字セットに関するものではなく、文字列に特定のスクリプトの文字が含まれているかどうかに関心があるように思えます。これは 'string.matches("。* \\ p {IsArabic}。* ")'のようなもので行うことができます。 – VGR

+0

@VGR IsArabicとは何ですか? – code511788465541441

答えて

2

周りに他の方法であなたが

Locale.getDefault().getDisplayLanguage(); 

により、デバイスの言語を取得することができますし、入力にチェックを行う場合にのみ、私はテキストを翻訳する必要があります文字列が特定しているかどうかを確認する方法についての答えは、文字列内の任意の文字が \u0600\u06FF(Unicodeのアラビア語文字セット)の間の範囲内にある場合、文字列は、それはトリック

Hereを行う必要があり、確認することです文字セット

public boolean isEncoded(String text){ 
    Charset charset = Charset.forName("US-ASCII"); 
    String checked=new String(text.getBytes(charset),charset); 
    return !checked.equals(text); 
} 
+0

範囲を確認するにはどうすればよいですか? – code511788465541441

+0

あなたの答えはほとんど私が必要とするものだと思います。モバイルの現在の言語がアラビア語であっても、常にtrueを返す点が異なります。私は、携帯電話言語の名前が何であれ、Charset.forNameを動的に設定する必要があります。それがどのように得られるか知っていますか? – code511788465541441

+0

Charset ysb = Charset.defaultCharset(); \t \t Charset charset = Charset.forName(ysb.displayName());常にfalseを返す – code511788465541441

関連する問題