1

メソッド s.next(); を使用するスキャナーがあります。(「」で区切られた単語全体を読み取ります)英語の文字と単語では正常に機能しますが、ヘブライ語で何かを書くと「??」が返されます 代わりは。

私の電話にはヘブライ語があり、アプリの他のすべての文字列はヘブライ語であり、スキャナーが読み取ったものだけが返されます?????.

ヘルプはありますか?ありがとう :)

スキャナーコード: (asynctask の一部です)

@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

4

1 に答える 1

1

まあ、実際にコメントで言及されているようにUTF-8エンコーディングを使用するとうまくいきましたが、Eclipseの外でメモ帳を使用してdata.txtを作成し、ANSI(デフォルト)の代わりにUTF-8エンコーディングで保存するだけで済みましたrawフォルダーがクリックされて実行されるEclipse内にインポートするだけで、機能しました。マジック。

私の間違いは、Eclipse内からdata.txtを作成したことだと思います。

于 2012-12-26T21:44:58.597 に答える