【发布时间】:2022-01-21 00:20:46
【问题描述】:
我正在尝试打开一个具有 UTF-8 编码的 GTFS 文件,但即使我将项目在 R 中的编码更改为 UTF-8,字符仍会被截断。该问题可以在“stop_name”列中看到。我使用的是 Windows 10,我知道 R 存在一些编码问题,但我不知道它是什么。
可重现的例子:
install.packages('gtfstools')
library(gtfstools)
# GTFS file directory
data_path <- system.file("extdata", package = "gtfstools")
spo_path <- file.path(data_path, "spo_gtfs.zip")
# read the file
spo_gtfs <- read_gtfs(spo_path)
# Show the stops (problem with encoding)
head(spo_gtfs$stops)
会话信息:
> sessionInfo()
R version 4.1.2 (2021-11-01)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 18363)
Matrix products: default
locale:
[1] LC_COLLATE=Portuguese_Brazil.1252 LC_CTYPE=Portuguese_Brazil.1252 LC_MONETARY=Portuguese_Brazil.1252
[4] LC_NUMERIC=C LC_TIME=Portuguese_Brazil.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_4.1.2 tools_4.1.2
【问题讨论】:
-
无法在 Ubuntu 机器上重现。我得到了我认为是正确的重音和下降的东西。你确定这不是语言环境和字体问题吗? (您没有提供通常需要的
sessionInfo()输出。) -
对于
stop_name我得到:"Clínicas" "Vila Madalena" "Consolação" "Conceição" "Jabaquara" "São Judas"。如果您仔细查看第一个项目,您会发现第一个 i 与第二个不同。 (我假设这是罗马尼亚语或卡斯特拉诺语或其他带有非英语后裔的罗曼语。)在美国语言环境的 Chrome 中,这些对我来说看起来几乎相同,但很难知道你的期望 或你所看到的。) -
@IRTFM 刚刚用 sessionInfo() 输出更新了帖子。
-
@IRTFM 你显示的那些名字是正确的。单词是葡萄牙语。你知道为什么我看不到同样的方式吗?我已经将 R studio 中项目的编码更改为 UTF-8,并使用 UTF-8 编码保存了文件。
-
所以这似乎是一个 Wndows 问题。答案似乎是您安装的语言环境具有默认的 Windows 字体及其 1252 代码页映射。具有讽刺意味的是,一个被吹捧为“通用”的协议无法处理这个问题,这可能是不可避免的。
标签: r encoding character-encoding gtfs gtfstools