Holen UTF-8-text aus MySQL in R gibt "????"

Ich bin stecken, versuchen zu Holen UTF-8-text in eine MySQL-Datenbank von R., ich bin mit R on OS X (habe versucht, sowohl über das GUI und Befehl Linie), wo der Standard-locale en_US.UTF-8, und egal was ich versuche, das Ergebnis der Abfrage zeigt "?", für alle nicht-ASCII-Zeichen.

Ich habe versucht Einstellung options(encoding='UTF-8'), DBMSencoding='UTF-8' wenn die Verbindung über ODBC Einstellung Encoding(res$str) <- 'UTF-8' nach dem abrufen der Ergebnisse, sowie 'utf8' Varianten von jedem von denen, alles ohne Erfolg. Ausführen der Abfrage über die Befehlszeile mysql-client zeigt die Ergebnisse korrekt.

Bin ich Total überfragt. Irgendwelche Ideen, warum es nicht funktioniert, oder andere Dinge, die ich versuchen sollte?

Hier ist ein ziemlich minimaler Testfall:

$ mysql -u root
mysql> CREATE DATABASE test;
mysql> USE test;
mysql> CREATE TABLE test (str VARCHAR(10)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.02 sec)

mysql> INSERT INTO test (str) VALUES ('こんにちは');
Query OK, 1 row affected (0.00 sec)

mysql> select * from test;
+-----------------+
| str             |
+-----------------+
| こんにちは      |
+-----------------+
1 row in set (0.00 sec)

Abfragen der Tabelle in R mit beiden RODBC und RMySQL zeigt "?????" für die str-Spalte:

> con <- odbcDriverConnect('DRIVER=mysql;user=root', DBMSencoding='UTF-8')
> sqlQuery(con, 'SELECT * FROM rtest.test')
    str
1 ?????
> library(RMySQL)
Loading required package: DBI
> con <- dbConnect(MySQL(), user='root')
> dbGetQuery(con, 'SELECT * FROM rtest.test')
    str
1 ?????

Vollständigkeit halber, hier mein sessionInfo:

> sessionInfo()
R version 2.15.1 (2012-06-22)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] RMySQL_0.9-3 DBI_0.2-5    RODBC_1.3-6 
Schreibe einen Kommentar