Я запускаю R на машине Windows, которая напрямую связана с базой данных PostgreSQL. Я не использую RODBC. Моя база данных закодирована в UTF-8, что подтверждается следующей командой R:
dbGetQuery(con, "SHOW CLIENT_ENCODING")
# client_encoding
# 1 UTF8
Однако, когда какой-либо текст читается в R, он отображается как странный текст в R.
Например, следующий текст показан в моей базе данных PostgreSQL: "Stéphane"
После экспорта в R он отображается как: "СТО © phane" (é закодирован как Ã ©)
При импорте в R я использую команду 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.