Отображение не iso символов в результатах SQL-запроса - PullRequest
0 голосов
/ 20 февраля 2019

Попытка решить проблему с неправильным отображением национальных символов (польского) в результатах запроса к базе данных MS SQL.

Сценарий довольно стандартный

Сначала объект соединения определения

library(DBI)    
db.conn <- DBI::dbConnect(odbc::odbc(),
    Driver = "SQL Server Native Client 11.0", 
    Server = "10.0.0.100",
    Port = 1433,
    Database = "DB",
    UID    = "user",
    PWD    = rstudioapi::askForPassword("Database password"),
    encoding = "latin1"
)

затем оператор SQL

db_sql = "    
    select
        *
    from test
    where active = 'ACTIVE'
    order by name_id"

Затем выполнение SQL

db_query <- dbSendQuery(db.conn, db_sql)
db_data <- dbFetch(db_query)

или

db_data <- dbGetQuery(db.conn, db_sql)

Не имеет значения, в определении объекта соединенияЯ использую параметр «latin1», «windows-1250» или «utf-8» для параметра кодирования, результаты всегда одинаковы

Строки с U + 009C или аналогичные

Это также неНеважно, какую кодовую страницу я выбираю в RStudio Global.

1 Ответ

0 голосов
/ 21 февраля 2019

Проблема решена.

Сначала необходимо изменить язык на польский

Sys.setlocale(category = "LC_ALL", locale = "Polish")

Затем установить правильное кодирование в

DBI::dbConnect(odbc::odbc()
...
encoding = "windows-1250"

и вуаля, работающая.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...