如何确定区域设置的字母表是什么?

我想确定给定语言环境的字母表是什么,最好是基于浏览器Accept-Language标头值。 任何人都知道怎么做,必要时使用图书馆?

看看[LocaleData.getExemplarSet] [1]

例如对于英语,这将返回abcdefghijklmnopqrstuvwxyz

[1]: http : //icu-project.org/apiref/icu4j/com/ibm/icu/util/LocaleData.html#getExemplarSet(com.ibm.icu.util.ULocale ,int)

如果您只想知道用户区域设置的适当字符集的名称,那么您可以尝试使用nio.CharSet类。

如果你真的想使用Accept-Language标题,那么有一篇关于这个问题的旧O’Reilly文章介绍了一个非常方便的类,叫做LanguageNegotiator 。

我认为其中一个会给你一个足够好的开始。

这取决于你想要的具体程度。 一个值得关注的地方是IANA语言注册表中的“Suppress-Script”属性。

有些语言有多个可用于编写的“字母”。 例如,阿塞拜疆可以用拉丁文或阿拉伯文写成。 大多数语言,如英语,几乎只用一个脚本编写,所以正确的脚本不言而喻,应该在语言代码中被“抑制”。

所以,看看俄语的条目,你可以看出首选的剧本是西里尔语,而对于埃塞俄比亚语,它是阿姆哈拉语。 但德语,挪威语和英语并不比“拉丁语”更具体。 所以,通过这种方法,你很难从美国人那里隐藏变形金刚和荆棘,或者向克什米尔作家提供任何剧本。

这是用Århus写的英文答案。 昨天,我听到一些德国人说’Blödheit,提议,是dumm’。 然而,其中一个人穿着一件上衣说“我知道文字和العربية之间的区别”。

你对这个问题的答案是什么? 是允许的吗? 这不是英文文本吗?

Unicode的国际组件可能对此有所帮助。 具体而言, UScript课程看起来很有前途

出于好奇:你需要什么?