我喜欢在我的Android应用程序中用西里尔语实现自定义搜索。 但是,我注意到来自键盘的ascii值和从资源文件中读取的相同字符的ascii值是不同的,因此无法实现自定义搜索。有人能帮助我吗?
这是我的代码,其中我意识到ascii值是不同的:
来自键盘(马其顿键盘),其中s是来自编辑文本控件的charsequence:
byte[] bytes=null;
try {
bytes = s.toString().getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
String str=new String(bytes);
byte [] arrayFromInput=toAsciiArray(str);
我得到了'o' - ASCII 111
String strRes=getResources().getString(R.string.o1).toLowerCase();
byte [] bytes1=null;
try {
bytes1 =strRes.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
String str1=new String(bytes1);
byte [] arrayFromData=toAsciiArray(str1);
我得到了'o'ASCII 62
这是我的toAssciiArray函数:
public static byte[] toAsciiArray(CharSequence charSequence) {
if (charSequence == null) {
return null;
}
byte[] barr = new byte[charSequence.length()];
for (int i = 0; i < barr.length; i++) {
barr[i] = (byte) toAscii(charSequence.charAt(i));
}
return barr;
}
public static int toAscii(char c) {
return c;
}
这是我的资源文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="o1">о</string>
</resources>