我想确定给定语言环境的字母表是什么,最好基于浏览器的 Accept-Language 标头值。任何人都知道如何做到这一点,如有必要使用图书馆?
5 回答
看看 [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”属性。
有些语言有多个可用于书写的“字母表”。例如,阿塞拜疆语可以用拉丁文或阿拉伯文书写。大多数语言,比如英语,几乎都是用一个单一的脚本编写的,所以正确的脚本是不言而喻的,应该在语言代码中“压制”。
因此,查看俄语的条目,您可以看出首选脚本是西里尔文,而对于埃塞俄比亚语,它是阿姆哈拉语。但德语、挪威语和英语并不比“拉丁语”更具体。因此,使用这种方法,您将很难向美国人隐藏变音符号和荆棘,或者向克什米尔作家提供任何剧本。
这是用奥胡斯写的英文答案。昨天,我听到一些德国人说“Blödheit, à propos, ist dumm”。然而,其中一个人穿着一件衬衫,上面写着“我知道文字和الْعَرَبيّة之间的区别”。
你对这篇文章的问题的答案是什么?是否允许?这不是英文文本吗?