12

我的 android 应用程序具有使用 tess-two 库的 OCR 功能。我在阅读包含“fi”的字符串时遇到了这个问题。在baseApi.getUTF8Text()之后,一种通过 OCR 获取识别文本的方法,“fi”中返回的字符串fi” <<<- - 非常注意那个字符串。它不是一个 2 字符的字符串,而是一个单字符的字符串。您可以通过复制和粘贴来重现它。现在,我认为这可能是我没有足够知识的 UTF8 编码等问题。当我尝试执行string.replace("fi","fi")时,Android Studio 构建时使用错误的不可映射字符来编码 utf-8. 我尝试在 google 中搜索,但它识别为常规的“fi”而不是“fi”。

有什么办法可以修复这个角色吗?

4

2 回答 2

6
于 2015-09-05T02:34:55.163 回答
2

这是我发现的,FWIW:字符 'fi' 是一个连字(更多信息:Unicode Character 'LATIN SMALL LIGATURE FI' (U+FB01)

这是一个快速而肮脏的程序,用于查找“fi”并将其替换为任何其他字符:

public class LigatureFI
{

    static char ligature_fi = 0xFB01;

    public static void main(String[] args)
    {
        String sligature_fi = Character.toString(ligature_fi);
        String string = new String("fififififififififififififififi");
        System.out.println(string);
        string = string.replaceAll(sligature_fi, "FI");
        System.out.println(string);
    }

}

如果您的 IDE 提示 'fi' 不在 cp1252 字符集中,请另存为 UTF8。

HTH。

于 2015-09-03T04:00:53.420 回答