Так что мой R использует кодировку cp1250, sessionInfo()
вывод:
R version 3.4.2 (2017-09-28)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
Matrix products: default
locale:
[1] LC_COLLATE=Czech_Czech Republic.1250 LC_CTYPE=Czech_Czech Republic.1250 LC_MONETARY=Czech_Czech Republic.1250
[4] LC_NUMERIC=C LC_TIME=Czech_Czech Republic.1250
Теперь я хочу работать с базой данных MySQL, используя пакет dbplyr
. Сначала, когда я подключаюсь к БД, я отправляю следующий запрос mysql:
SET NAMES 'cp1250';
Затем, когда я отправляю инструкцию SELECT следующим образом:
SELECT dg_group
FROM transpl
WHERE `dg_group` = 'Hodgkinův lymfom'
возвращает мне 0 строк. НО! Когда я устанавливаю кодировку символов строки 'Hodgkinův lymfom'
в UTF-8, он возвращает мне все соответствующие строки. Я установил кодировку UTF-8 следующим образом:
x <- 'Hodgkinův lymfom'
Encoding(x) <- 'UTF-8'
Тогда оператор SELECT выглядит следующим образом, когда я помещаю переменную x
в предложение WHERE:
SELECT dg_group
FROM transpl
WHERE `dg_group` = 'Hodgkin<f9>v lymfom'
Хотя кодировка транзакции - cp1250, она работает с UTF-8, но не с cp1250.
Кстати, когда я делаю следующую инструкцию SELECT с SET NAMES 'cp1250'
, возвращаемые значения в строках отображаются корректно:
SELECT *
FROM transpl
Есть идеи, что может быть не так?