使用R

时间:2017-11-10 04:19:04

标签: r surrogate-pairs cjk

我试图将日语字符串向量(最初从逗号分隔文件导入)与从Mac OSX下的文件夹中提取的文件名列表进行匹配。

向量中的一个元素是a

> a
[1] "立ち上げる.mp3"

文件名中的相应元素是b

> b
[1] "立ち上げる.mp3"

问题是它们在逻辑上在R中并不相同:

> a == b
[1] FALSE

我已经发现这是日本“dakuten”字符的代理对出现的问题(即通过添加额外的点从け延伸的げ字符)。所以他们实际上彼此不同:

> iconv(a, "latin1")
[1] "ç«\u008bã\u0081¡ä¸\u008aã\u0081\u0092ã\u0082\u008b.mp3"
> iconv(b, "latin1")
[1] "ç«\u008bã\u0081¡ä¸\u008aã\u0081\u0091ã\u0082\u0099ã\u0082\u008b.mp3"

> nchar(a)
[1] 9
> nchar(b)
[1] 10

如何使用R来转换相同日文字符的这两个版本,以便它们可以有效匹配(即它们应该相同)?

1 个答案:

答案 0 :(得分:1)

有一个开源桥库可以调用ICU库RUnicode。在Mac OS X上,您可以将搜索键规范化为NFD(Mac OS X样式)。

它会对其他日文字母进行标准化,例如全宽和半角片假名,这可能会或可能不会出于您的目的。