プログラムで GPS (緯度/経度) から位置情報を受信しています。ただし、特殊文字や不要な文字を含む住所を受信することがあります。
特殊文字や不要な文字を含むアドレスをサーバーに送信すると、サーバーによって拒否されます。
例 1: , デリー, ä¸å?½
例 2: सॠक
この問題を防ぐにはどうすればよいですか?
プログラムで GPS (緯度/経度) から位置情報を受信しています。ただし、特殊文字や不要な文字を含む住所を受信することがあります。
特殊文字や不要な文字を含むアドレスをサーバーに送信すると、サーバーによって拒否されます。
例 1: , デリー, ä¸å?½
例 2: सॠक
この問題を防ぐにはどうすればよいですか?
正規表現を使用してこの問題を回避し、すべての文字が US-ASCII コード ポイント タイプであると一致させることができます。
String testText [] = new String[] { "delhi", "ä¸å?½",
"à¤", "à¥à¤• ", "tessst½", "some valid test text1213"
};
for (String str : testText) {
if (str.matches("\\A\\p{ASCII}*\\z")) {
//do something
Log.d("TAG", str + " - String is valid");
}
}
Java 8 を使用している場合は、次の方法で実行できます。
textInfoFromLocation.chars().allMatch(c -> c < 128)
各文字を確認したいだけの場合は、次のようにします。
for (Character c : str.toCharArray()) {
if (c > 127) //character is invalid
Log.d("TAG","Character " + c + " is invalid");
}
詳細については、この回答を参照してください。