Я запускаю R на машине Windows, которая напрямую связана с базой данных PostgreSQL. Я не использую RODBC. Моя база данных кодируется в UTF-8, как подтверждено с помощью следующей команды R:UTF-8/кодировка кодировки Unicode с RPostgreSQL
dbGetQuery(con, "SHOW CLIENT_ENCODING")
# client_encoding
# 1 UTF8
Однако, когда какой-нибудь текст читается в R, он показывает, как странный текст в R.
Например, следующее текст отображается в моей базе данных PostgreSQL: «Stephane»
После экспорта в R это показано как: «STA © phane» (é кодируется как Ã ©)
При импорте в R я использую команду dbConnect
для установления соединения и команду dbGetQuery
для запроса данных с использованием SQL. Я не указываю никакого текстового кодирования нигде при подключении к базе данных или при выполнении запроса.
Я искал в Интернете и не могу найти прямое решение по моей проблеме. Я нашел this link, но их проблема с RODBC, которую я не использую.
This link полезен при идентификации символов, но я не просто хочу найти нуль & заменить в 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.
Обратите внимание, что 'client_encoding' * не * фактическое кодирование используется в вашей базе данных. Вы можете найти кодировку для базы данных, используя опцию 'psql -l' или команду' \ l'. – nwellnhof