Behebung des UTF-8-Zeichenkodierungsproblems beim Abrufen von Text aus MySQL in R
Abrufen von UTF-8-kodiertem Text aus einer MySQL-Datenbank in R kann Probleme bereiten und dazu führen, dass beschädigte Zeichen als „?“ angezeigt werden. Symbole. Mehrere Versuche, dieses Problem mit R und verschiedenen Paketen zu lösen, waren erfolglos.
Die Hauptursache dieses Problems liegt im Standardzeichensatz, der von den Verbindungen verwendet wird, die von R aus mit der Datenbank hergestellt werden. Standardmäßig ist das Gebietsschema von R auf en_US.UTF-8 eingestellt, aber die Datenbank selbst ist möglicherweise für die Verwendung eines anderen Zeichensatzes konfiguriert, z. B. latin1, der die UTF-8-Kodierung nicht unterstützt.
Um dieses Problem zu lösen, ist es notwendig Stellen Sie sicher, dass die Verbindungssitzung explizit auf die Verwendung der UTF-8-Codierung eingestellt ist. Um dies zu erreichen, gibt es zwei Ansätze:
Verwendung von RMySQL:
Nachdem Sie mit dbConnect(MySQL()) eine Verbindung zur MySQL-Datenbank hergestellt haben, führen Sie die folgende Abfrage aus:
SET NAMES utf8
Diese Abfrage ändert den Zeichensatz für die aktuelle Sitzung in UTF-8 und stellt so sicher, dass alle nachfolgenden Abfragen korrekt in UTF-8 codierte Daten abrufen.
Mit RODBC :
Wenn Sie mit odbcDriverConnect() eine Verbindung zur Datenbank herstellen, geben Sie den Parameter CharSet=utf8 innerhalb der DSN-Zeichenfolge an:
con <- odbcDriverConnect('DRIVER=mysql;user=root;CharSet=utf8')
Indem Sie den Zeichensatz explizit auf UTF-8 festlegen , ruft die über RODBC hergestellte Verbindung Daten mit der richtigen Codierung ab, wodurch das Problem mit beschädigten Zeichen behoben wird.
Das obige ist der detaillierte Inhalt vonWie löst man Probleme mit der UTF-8-Zeichenkodierung beim Abrufen von Text aus MySQL in R?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!