2

我正在阅读一个包含 unicode 字符的 txt 文件。我需要查找此文件中是否存在特定的 unicode 字符。到目前为止的代码如下,

    try {
        BufferedReader reader = new BufferedReader(
            new InputStreamReader(getAssets().open("DistinctWords.txt"), "UTF-8"));

         int i = 0;
        String mLine = reader.readLine();
        while ((mLine != null)) {
           //process line
//unicode value taken from http://codepoints.net/U+0D85
            if (mLine.contains("\u0D85")){
                i++;
            }
           mLine = reader.readLine(); 

        }

        reader.close();
        Log.i("tula", "Ayanna - " + String.valueOf(i));
    } catch (IOException e) {
        //log the exception
    }

问题:“i”的值始终为“0”。当我从记事本打开相同的文本文件时,我可以看到这封信,但我的代码找不到它。

4

1 回答 1

2

就像 TronicZomB 所说,我认为您需要寻找实际角色,例如:

while ((mLine != null)) {
   //process line
    if (mLine.contains("අ")){
        i++;
    }
   mLine = reader.readLine(); 
}

您将需要使用可以处理正确编码的编辑器:

  • Windows 上的记事本将允许您在文件上指定 UTF-8 编码,但您必须将文件上的编码设置为 ANSI 的 UTF-8。
  • 在 mac OS-x 上,您可以使用 TextEdit。在首选项中,使用打开和保存选项卡,您可以设置文档编码。
  • 在 Linux StarSuite 上据说可以工作,但我没有使用它。
于 2013-08-14T01:57:29.123 回答