当前位置: 首页 > 工具软件 > RPostgreSQL > 使用案例 >

linux中psql设置utf8,使用RPostgreSQL的UTF-8/Unicode文本编码

孙泉
2023-12-01

我在Windows机器上运行R,它直接链接到PostgreSQL数据库.我没有使用RODBC.我的数据库以UTF-8编码,由以下R命令确认:

dbGetQuery(con, "SHOW CLIENT_ENCODING")

# client_encoding

# 1 UTF8

但是,当一些文本被读入R时,它在R中显示为奇怪的文本.

例如,我的PostgreSQL数据库中显示以下文本:"Stéphane"

出口至R之后它表现为:"STA©PHANE"(该é被编码为é)

导入RI时,使用dbConnect命令建立连接,dbGetQuery使用SQL查询数据的命令.连接到数据库或运行查询时,我没有在任何地方指定任何文本编码.

我在网上搜索过,找不到直接解决我的问题的方法.我找到了这个链接,但他们的问题是RODBC,我没有使用.

此链接有助于识别符号,但我不只是想在R ...中查找和替换太多数据.

我确实尝试在下面运行以下命令,然后发出警告.

Sys.setlocale("LC_ALL", "en_US.UTF-8")

# [1] ""

# Warning message:

# In Sys.setlocale("LC_ALL", "en_US.UTF-8") :

# OS reports request to set locale to "en_US.UTF-8" cannot be honored

Sys.setenv(LANG="en_US.UTF-8")

Sys.setenv(LC_CTYPE="UTF-8")

警告发生在Sys.setlocale("LC_ALL", "en_US.UTF-8")命令上.我的直觉是这是Windows特定的问题,并且在Mac/Linux/Unix中不会发生.

 类似资料: