Heim >Datenbank >MySQL-Tutorial >Warum sehe ich \'?????\'-Zeichen, wenn ich UTF-8-Text aus MySQL in R abrufe?
UTF-8-Textabruf von MySQL in R: Dekodierung von „?????“
Abruf von UTF-8-codiertem Text aus einem MySQL-Datenbank in R kann manchmal zu „?????“ führen Charaktere. Um dieses Problem zu beheben, beachten Sie Folgendes:
1. Überprüfen Sie die Datenbankkodierung
Stellen Sie sicher, dass die Datenbanktabelle mit dem richtigen Zeichensatz und der richtigen Sortierung definiert ist. Zum Beispiel in MySQL:
CREATE TABLE test (str VARCHAR(10)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2. Verbindungskodierung festlegen
Geben Sie beim Herstellen einer Datenbankverbindung in R die richtige Zeichenkodierung an.
RODBC:
con <- odbcDriverConnect('DRIVER=mysql;user=root', CharSet='utf8')
RMySQL:
Zuerst verbinden und dann ausführen:
dbConnect(MySQL(), user='root') dbSendQuery(con, 'SET NAMES utf8')
3. Zeichenkodierung konvertieren
Konvertieren Sie nach dem Abrufen der Ergebnisse die Zeichenkodierung der Zeichenfolgenspalte in UTF-8.
RODBC:
res <- sqlQuery(con, 'SELECT * FROM rtest.test') res$str <- iconv(res$str, "UTF-8-Mac")
RMySQL:
res <- dbGetQuery(con, 'SELECT * FROM rtest.test') res$str <- as.character(res$str, encoding = 'UTF-8')
Zusätzliche Hinweise:
Das obige ist der detaillierte Inhalt vonWarum sehe ich \'?????\'-Zeichen, wenn ich UTF-8-Text aus MySQL in R abrufe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!