作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我使用 read.csv
使用选项 encoding = "UTF-8"
读取包含中文字符的文件,我得到了这些神秘的代码。
通过一些比较,我意识到它们可以一对一匹配汉字,但是我如何将它们转换回R中的汉字。
例如,<U+9600>
和 <U+524D>
分别是"阀"
和 "前"
.
最佳答案
您需要更改语言环境设置以获取中文字符,例如:
x <- "阀"
print(x) will result in ##[1] "<U+9600>"
oldloc <- Sys.getlocale("LC_CTYPE")
Sys.setlocale("LC_CTYPE", "en_US.UTF-8")
print(x) ###The result is now [1] "阀"
zh_CN.UTF-8
,它也对我有用。如果你搞砸了任何事情,那么你可以使用下面的方法来进入之前的状态:
Sys.setlocate("LC_CYTPE",oldloc)
Warning message:
In Sys.setlocale("LC_CTYPE", "en_US.UTF-8") :
OS reports request to set locale to "en_US.UTF-8" cannot be honored
stri_trans_general
如下所示,这解决了问题并打印了所需的汉字
stringi::stri_trans_general(x, "zh")
> stringi::stri_trans_general(x, "zh")
[1] "阀"
关于R如何将<U+9600><U+524D>之类的UTF-8代码转换回汉字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44095025/
我是一名优秀的程序员,十分优秀!