r - R 无法正确使用 UTF-8 编码罗马字符
问题描述
我正在处理一些位置名称使用本地字符的位置数据集。大多数字符都被正确查看,但我遇到了一些罗马尼亚字符的问题,例如“ș”。
我尝试将我的 Windows 10 64 位系统语言环境更改为使用 UTF-8 编码,但这并没有解决问题。
可以在此处找到示例文件进行测试: https ://drive.google.com/file/d/1T7QQQ7G_dA_rXD9Ewf51uuQ6CUkscjP_/view?usp=sharing
此行导入数据:
df <- read.delim("R_Encode_Issue.csv", header=TRUE, sep=",", encoding = "UTF-8", colClasses=c("character","character","character"))
> df
region country chapter
1 Europe Moldova Chi<U+0219>inau
这会在控制台和查看器中将位置章节显示为“Chiinau”(Stackoverflow 甚至无法显示:D)。
如果我将 data_table 转换为 tibble:
df2 <- as_tibble(df)
> df2
# A tibble: 1 x 3
region country chapter
<chr> <chr> <chr>
1 Europe Moldova Chișinău
控制台将位置章节显示为“基希讷乌”,而查看器显示为“基希讷乌”。
我将数据写入 .csv 文件:
write.csv(df2, file = "R_Encode_Out.csv",row.names=FALSE, na="", fileEncoding = "UTF-8")
并且位置章节在书面文件中写为“Chiinau”。
R版本:
platform x86_64-w64-mingw32
arch x86_64
os mingw32
system x86_64, mingw32
status
major 3
minor 5.3
year 2019
month 03
day 11
svn rev 76217
language R
version.string R version 3.5.3 (2019-03-11)
nickname Great Truth
RStudio 版本:
$mode
[1] "desktop"
$version
[1] ‘1.1.463’
当我使用 UTF-8 作为导入和导出的编码时,我希望查看器或至少写入的文件能够正确显示字符。但情况是字符导出不正确。
关于我能做些什么来纠正这个问题的任何见解?
解决方案
尝试使用与基本 R 不同的导入和导出函数。我readr
在导出的文件中使用它(似乎查看器确实将其显示为Chi<U+0219>inau
。导出的文件在记事本中正确打开,如果我指定它具有 UTF 则在 Excel 中正确打开-8 编码。
library(readr)
df <- read_csv("C:/Users/Andrew/Downloads/R_Encode_Issue.csv", locale = locale(encoding = "UTF-8"))
df
# A tibble: 1 x 3
region country chapter
<chr> <chr> <chr>
1 Europe Moldova Chișinău
write_csv(df, "C:/Users/Andrew/Desktop/R_Encode_Issue.csv")
推荐阅读
- c++ - 如何在c ++ .dat文件中显示根据roll no排序的记录
- python - Django makemigrations 正在为 managed = False 的模型创建迁移
- android - 如何在 bash 上监听水龙头
- python - 为什么我使用 os.popen 复制功能后得到空文件?
- ios - 在 SwiftUI 中删除特定行中的分隔符
- python - 如何从列表中删除类似列表。如何从列表中删除重复项
- python - 打印使用随机输入的 5 个整数中的 4 个的最大和最小总和
- android - Developer.facebook.com 要求提供数据删除网址
- laravel-backpack - 我可以将背包 CRUD 限制为 1 个元素吗?
- angular - 如何从角度 10 的月份名称数组中获取月份编号