6

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

4

5 回答 5

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)

于 2010-08-19T12:22:18.197 回答
1

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

如果您真的想使用 Accept-Language 标头,那么O'Reilly 有一篇关于此问题的旧文章介绍了一个非常方便的类,称为LanguageNegotiator

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

于 2009-01-06T21:04:51.823 回答
1

这取决于您想要获得的具体程度。一个地方可以查看IANA 语言注册表中的“Suppress-Script”属性。

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

因此,查看俄语的条目,您可以看出首选脚本是西里尔文,而对于埃塞俄比亚语,它是阿姆哈拉语。但德语、挪威语和英语并不比“拉丁语”更具体。因此,使用这种方法,您将很难向美国人隐藏变音符号和荆棘,或者向克什米尔作家提供任何剧本。

于 2009-01-07T01:04:42.367 回答
1

这是用奥胡斯写的英文答案。昨天,我听到一些德国人说“Blödheit, à propos, ist dumm”。然而,其中一个人穿着一件衬衫,上面写着“我知道文字和الْعَرَبيّة之间的区别”。

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

于 2009-01-07T14:09:26.683 回答
0

Unicode的国际组件在这里可能会有所帮助。具体来说,这UScript门课看起来很有希望。

出于好奇:你需要它做什么?

于 2009-01-07T14:14:19.060 回答