如何(或在何处)按州/国籍获取国家字母用户?例如:例如:
- Gernan 语言使用
öäüß
(加上 ascii 字母) - 匈牙利语:
áéíóöúüőű
- 捷克语:
áéíóúýčďěňřšťůž
- 冰岛:
áæéíðóöúýþ
等..
标记为 perl 因为将它用于脚本,但欢迎任何想法和/或引用。
LC_CTYPE
的语言环境定义文件没有帮助,因为它只是指向所有语言使用的通用utf8-C_TYPE
的链接\p{Latin}
涵盖扩展拉丁语 block 中的所有字符,因此不适用于给定的国家/地区。- 上面的例子是通过从我在网上找到的一些 Pangrams 中删除 Ascii 来完成的。
- 是否可以通过 (perl) 脚本正确地完成此操作,或者唯一的方法是在网络上搜索一些描述给定国家/地区“官方”字母表的“文档”?
最佳答案
因为
- 字符用于创建给定语言的书面表示
- 并且语言本身是编纂的
- 每种语言都需要它的“自己的”字符,这些字符允许编写该语言。
经过一些搜索和浏览 unicode.org 我发现我的定义很模糊
If you search the web for "pangram" - each author perfectly knows, what characters belongs to his language.
被称为:语言所需的最少字符数。 Learn more in CLDR .该定义包含一个部分 Exemplar Characters
:
The exemplar character sets contain the commonly used letters for a given modern form of a language.
因此,为了获得这些字符,下载给定语言的主 XML 文件就足够了,例如:
- http://unicode.org/cldr/trac/browser/trunk/common/main/is.xml
- http://unicode.org/cldr/trac/browser/trunk/common/main/hu.xml
- http://unicode.org/cldr/trac/browser/trunk/common/main/sk.xml
并提取:/ldml/characters/exemplarCharacters
,例如这样的:
冰岛语
<exemplarCharacters>[a á b d ð e é f g h i í j k l m n o ó p r s t u ú v x y ý þ æ ö]</exemplarCharacters>
斯洛伐克语
<exemplarCharacters>[a á ä b c č d ď e é f g h {ch} i í j k l ĺ ľ m n ň o ó ô p q r ŕ s š t ť u ú v w x y ý z ž]</exemplarCharacters>
匈牙利语
<exemplarCharacters>[a á b c {cs} {ccs} d {dz} {ddz} {dzs} {ddzs} e é f g {gy} {ggy} h i í j k l {ly} {lly} m n {ny} {nny} o ó ö ő p r s {sz} {ssz} t {ty} {tty} u ú ü ű v z {zs} {zzs}]</exemplarCharacters>
这正是我所需要的。也许这对其他一些人也有帮助。
编辑
现在存在 https://metacpan.org/pod/Locale::CLDR包含所有需要信息的模块(以及更多来自 CLDR 的信息)
关于perl - 国家字表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29968395/