Я использую R и library(odbc)
для запроса данных из базы данных SQL Server:
library(odbc)
st_zh <- dbConnect(odbc(),
driver ='SQL Server' ,
server = Sys.getenv("COMPUTERNAME"),
database ='st_zh' ,
encoding ='iso-8859-1'
# encoding ='UTF-8'
);
Я выполняю запрос, содержащий не-ASCII символы:
res <- dbGetQuery(st_zh, "select nm from tab where nm = 'Zürich'");
Запрос возвращает одну запись, которая указывает, что ü
было передано на SQL Server, как и предполагалось.
Однако, если я напечатаю res$nm
, я получу следующее:
> res$nm
[1] "Z<fc>rich"
Кажется, <fc>
указывает, что строка содержит ü
в латинице-1. Однако R, кажется, думает, что это UTF-8:
> Encoding(res$nm)
[1] "UTF-8"
Если я явно изменю кодировку:
> Encoding(res$nm) <- 'latin-1'
Я получаю ü
при печати res$nm
.
Если я подключусь (dbConnect
) к encoding='UTF-8'
, у меня возникнут те же проблемы.
Это происходит в Windows / rgui.exe
.
Могу ли я изменить что-то, что R получает и правильно интерпретирует кодировку?