TextView 数字以波斯字体显示为英文

Moh*_*oor 4 java fonts android locale right-to-left

我正在将一个包含一些数字(全部为波斯语)的字符串加载到 android TextView 中。一切都很好,直到我改变了我的自定义字体,文本数字显示为英文数字。

Expected : ????
Received : 1234
Run Code Online (Sandbox Code Playgroud)

我知道我的新字体支持波斯数字。当我使用正确显示的数字下方的代码更改数字区域设置时。

NumberFormat numberFormat = NumberFormat.getInstance(new Locale("fa", "IR"));
String newNumber = numberFormat.format(number);
Run Code Online (Sandbox Code Playgroud)

问题是我有一个字符串,很难找到数字部分并更改它。我以前的字体也很好用,我不明白这个字体有什么问题。

知道如何为所有文本视图或至少为字符串全局解决此问题吗?

Ali*_*ali 6

尝试使用此方法:

private String setPersianNumbers(String str) {
    return str
            .replace("0", "?")
            .replace("1", "?")
            .replace("2", "?")
            .replace("3", "?")
            .replace("4", "?")
            .replace("5", "?")
            .replace("6", "?")
            .replace("7", "?")
            .replace("8", "?")
            .replace("9", "?");
}
Run Code Online (Sandbox Code Playgroud)