1

我有一个使用方法 s.next(); 的扫描仪。(它读取一个用“”分隔的整个单词)它可以很好地处理英文字母和单词,但是当我用希伯来语写东西时,它会返回“??” 反而。

我的手机确实有希伯来语,我的应用程序中的所有其他字符串都是希伯来语,只有扫描仪读取的返回 ?????。

有什么帮助吗?谢谢 :)

扫描仪代码:(它是异步任务的一部分)

@Override
    protected Void doInBackground(CharSequence... txt) {
        Scanner s = new Scanner(getResources().openRawResource(R.raw.data));
        try {
            boolean add;
            do { 
                add = false;
                ListItem temp = new ListItem();
                temp.data[ListItem.NAME] = s.next();
                Log.i("AsyncTask", temp.data[ListItem.NAME]);
                if (temp.data[ListItem.NAME].contains(txt[0])) {
                    Log.i("match", "found");
                    add = true; 
                }
                temp.data[ListItem.MAKAT] = s.next();
                Log.i("AsyncTask", temp.data[ListItem.MAKAT]);
                if (temp.data[ListItem.MAKAT].contains(txt[0])) {
                    add = true; 
                }
                temp.data[ListItem.JHAZIT] = s.next();
                temp.data[ListItem.KOMA] = s.next();
                temp.data[ListItem.MESPAR] = s.next();

                if (add) {
                    this.publishProgress(temp);
                }
            }
            while (s.hasNext());

        }
        finally {
            s.close();
        }
        return null;
    }

我取出信息的文件名为 data.txt :

桶 4315124 2 3 43
车 414124 2 4 41
Red_box 4315124 1 2 77
Glass_cup 4515124 4 7 10
Iron_cup 4515124 4 7 9
Gabi_Noob 5717217 7 8 9 מכסה_158ו35 8 46

4

1 回答 1

1

好吧,实际上使用评论中提到的UTF-8编码有效,只有我必须使用eclipse之外的记事本创建data.txt并使用UTF-8编码而不是ANSI(默认)保存它而不是我只需将其导入原始文件夹的 Eclipse 中,单击运行即可。魔法。

我想我的错误是从 Eclipse 内部创建 data.txt。

于 2012-12-26T21:44:58.597 回答