我正在清理实体(人员、组织等)的“个人资料”数据库,个人资料的一个这样的部分是用 UTF-8 编码的本地脚本(例如泰语)中的个人姓名. 在之前的数据结构中,我们没有捕获名称的字符集,因此现在我们有更多的无效值记录,无法手动查看。
此时我需要做的是,通过脚本,确定任何给定名称的语言/脚本。使用以下示例数据集:
Name: "??????????"
Script: NULL
Name: "?????"
Script: NULL
Run Code Online (Sandbox Code Playgroud)
我需要结束
Name: "??????????"
Script: Thai
Name: "?????"
Script: Amharic
Run Code Online (Sandbox Code Playgroud)
我不需要翻译名称,只需确定它们的脚本即可。是否有一种既定的技术可以解决此类问题?
您可以charnames在 Perl 中使用来找出给定字符的名称。
use strict;\nuse warnings;\nuse charnames \'\';\nuse feature \'say\';\nuse utf8;\n\nsay charnames::viacode(ord \'\xd4\xb2\');\n\n__END__\nARMENIAN CAPITAL LETTER BEN\nRun Code Online (Sandbox Code Playgroud)\n\n这样,您可以将所有字符串分解为字符,然后为每种类型的字符组构建计数哈希。从中找出组有点棘手,但这只是一个开始。一旦你完成了一个字符串,计数最高的组应该获胜。这样,您就不会受到标点符号或数字的干扰。
\n\n也许更明智的做法是找到已经具有 unicode 范围名称并易于查找的内容。我知道 CPAN 上至少有一个模块可以做到这一点,但我现在找不到它。类似的东西可以被滥用以使查找更容易。
\n| 归档时间: |
|
| 查看次数: |
187 次 |
| 最近记录: |