Heim > Datenbank > MySQL-Tutorial > Warum sehe ich \'?????\'-Zeichen, wenn ich UTF-8-Text aus MySQL in R abrufe?

Warum sehe ich \'?????\'-Zeichen, wenn ich UTF-8-Text aus MySQL in R abrufe?

Linda Hamilton
Freigeben: 2024-11-03 18:05:29
Original
255 Leute haben es durchsucht

Why am I seeing

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;
Nach dem Login kopieren

2. Verbindungskodierung festlegen

Geben Sie beim Herstellen einer Datenbankverbindung in R die richtige Zeichenkodierung an.

RODBC:

con <- odbcDriverConnect('DRIVER=mysql;user=root', CharSet='utf8')
Nach dem Login kopieren

RMySQL:

Zuerst verbinden und dann ausführen:

dbConnect(MySQL(), user='root')
dbSendQuery(con, 'SET NAMES utf8')
Nach dem Login kopieren

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")
Nach dem Login kopieren

RMySQL:

res <- dbGetQuery(con, 'SELECT * FROM rtest.test')
res$str <- as.character(res$str, encoding = 'UTF-8')
Nach dem Login kopieren

Zusätzliche Hinweise:

  • Stellen Sie sicher, dass das Standardsystemgebietsschema auf UTF-8 eingestellt ist .
  • Für RMySQL ist die Verwendung von dbSendQuery zum Festlegen der Zeichenkodierung für alle nachfolgenden Abfragen wirksam.
  • iconv kann auch zum Transkodieren von Zeichenfolgen in UTF-8 verwendet werden, sein Verhalten kann jedoch je nach variieren Plattform.

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage