gpt4 book ai didi

R如何将之类的UTF-8代码转换回汉字

转载 作者:行者123 更新时间:2023-12-04 11:25:23 25 4
gpt4 key购买 nike

当我使用 read.csv使用选项 encoding = "UTF-8" 读取包含中文字符的文件,我得到了这些神秘的代码。

通过一些比较,我意识到它们可以一对一匹配汉字,但是我如何将它们转换回R中的汉字。

例如,<U+9600><U+524D>分别是"阀""前" .

最佳答案

您需要更改语言环境设置以获取中文字符,例如:

x <- "阀"
print(x) will result in ##[1] "<U+9600>"

将您的区域设置保存在一个对象中作为备份,以便我们可以像之前一样撤消区域设置
oldloc <- Sys.getlocale("LC_CTYPE")

通过将“ en_US.UTF-8 ”作为第二个参数来更改语言环境:
Sys.setlocale("LC_CTYPE", "en_US.UTF-8")
print(x) ###The result is now [1] "阀"

您也可以尝试语言环境 zh_CN.UTF-‌​8 ,它也对我有用。如果你搞砸了任何事情,那么你可以使用下面的方法来进入之前的状态:
Sys.setlocate("LC_CYTPE",oldloc)

我刚刚在查看 OP 正在 Windows 机器上运行的评论时意识到,上述命令在我的 Mac sierra 上运行良好,但在 Windows 7 机器上产生如下警告:

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


但是,为了在 Windows 上解决上述问题,我使用了 stringi 的函数 stri_trans_general如下所示,这解决了问题并打印了所需的汉字
stringi::stri_trans_general(x, "zh")
输出 :
> stringi::stri_trans_general(x, "zh")
[1] "阀"

您可以访问 here查看不同地区的语言环境。

关于R如何将<U+9600><U+524D>之类的UTF-8代码转换回汉字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44095025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com