来自android键盘和资源文件的西里尔字符的ASCII值是不同的

时间:2015-09-29 14:26:51

标签: android string keyboard ascii cyrillic

我喜欢在我的Android应用程序中用西里尔语实现自定义搜索。 但是,我注意到来自键盘的ascii值和从资源文件中读取的相同字符的ascii值是不同的,因此无法实现自定义搜索。有人能帮助我吗?

这是我的代码,其中我意识到ascii值是不同的:

  1. 来自键盘(马其顿键盘),其中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);
    
  2. 我得到了'o' - ASCII 111

      来自资源文件的
    1.       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);
      
    2. 我得到了'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>
      

0 个答案:

没有答案