正如我在以下问题中提出的那样:
Arabic number in Arabic text in Android
如果我使用阿拉伯语语言环境ar-ae或ar-sa,则使用印度语 - 阿拉伯语数字显示数字。 我需要显示英文中的数字:“1234567890”。
我曾经使用设置数字扩展名
的技巧Locale.Builder builder = new Locale.Builder();
builder.setLocale(savedLocale).setExtension(Locale.UNICODE_LOCALE_EXTENSION, "nu-latn");
Locale locale = builder.build();
问题在于,在您执行此操作后,资源查找会被破坏,而使用Nougat它就不再起作用了。
有没有办法看到“正常”数字,即使使用阿拉伯语区域设置ae和sa?
答案 0 :(得分:2)
一种解决方法是替换数字字符的字体。您可以保留文本的原始字体。
我建议通过扩展TypeFaceSpan以干净的方式做到这一点。 看一下这个question。
如果您需要一些代码,请告诉我,我会更新此答案。
答案 1 :(得分:1)
目前我所做的是使用自定义字体,并在自定义字体的文件中替换带有印度语 - 阿拉伯数字的数字,以及“西阿拉伯”数字的对应字符。
答案 2 :(得分:1)
您应该信任您正在使用的区域设置。如果你是专门针对ar_SA那么你应该让它按照它对国家的方式呈现。如果你只想要阿拉伯语,但想要西方的阿拉伯语数字,那么可以尝试一下阿拉伯西部国家的语言环境,例如ar_MA。