当我运行devtools::check()
时,会出现一个警告:
checking data for non-ASCII characters ... WARNING
Warning: found non-ASCII string
'Tanaid<c3><a6>' in object 'data_m'
我做了以下检查
library(stringi)
stri_enc_mark("Tanaid<c3><a6>")
显示&#34; [1]&#34; ASCII&#34;&#34;
和all(stri_enc_isutf8('Tanaid<c3><a6>' ))
显示&#34; [1] TRUE&#34;
更新
我跟进了评论,并尝试将字符串从本机编码转换为ASCII。
我做了iconv("Tanaid\xc3\xa6>", "native", "UTF-8")
但是,iconv
不采用原生编码并报告Error in iconv("Tanaidæ>", "native", "UTF-8") :
unsupported conversion from 'native' to 'UTF-8'
iconv("Tanaid\xc3\xa6", "latin1", "ASCII")
或iconv("Tanaid\xc3\xa6", "latin2", "ASCII")
也不会产生正确的字符串。
更好的解决方案是stri_trans_general("Tanaid\xc3\xa6", "latin-ascii")
来完成工作。