将带重音符号的字符转换为ASCII字符

25
什么是从1600万个字符串变量向量中删除德语(或法语)口音的最佳方法?
例如:'Sjögren's syndrome' 变成 'Sjogren's syndrome'。
将单个字符转换为单个字符比使用音译更好,如:
ä => ae,ö => oe,ü => ue。
例如:使用正则表达式是一种选择,但是否有更好的选项(R包)? gsub('ü','u',gsub('ö','o',"Sjögren's syndrome ( über) ")) 非R平台的SO解决方案存在,但没有一个好的R解决方案。

1
请参考此帖子的答案:[stackoverflow.com/questions/23699271/force-character-vector-encoding-from-unknown-to-utf-8-in-r][1] - Alex Ioannides
请参考此帖子的答案:https://dev59.com/xWAg5IYBdhLWcg3wWpxE。 - Alex Ioannides
2个回答

29

其中一个相关的答案建议

library(stringi)
stri_trans_general("Zażółć gęślą jaźń", "Latin-ASCII")

[1] "Zazolc gesla jazn"

29

使用iconv进行转换为ASCII,并进行音译(如果支持):

iconv(c("über","Sjögren's"),to="ASCII//TRANSLIT")
[1] "uber"      "Sjogren's"

2
对于有重音的字符,例如 é,翻译为 'e。运行以下命令来处理上述操作的输出向量:out <- gsub("\\'", '', out) - aaron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接