Rumah > Artikel > pangkalan data > Mengapa saya melihat aksara \"?????\" apabila mendapatkan semula teks UTF-8 daripada MySQL dalam R?
UTF-8 Text Retrieval daripada MySQL dalam R: Decoding "?????"
Mengambil semula teks yang dikodkan UTF-8 daripada Pangkalan data MySQL ke dalam R kadangkala boleh menghasilkan "?????" watak. Untuk menyelesaikan isu ini, pertimbangkan perkara berikut:
1. Sahkan Pengekodan Pangkalan Data
Pastikan jadual pangkalan data ditakrifkan dengan set aksara dan penyusunan yang sesuai. Contohnya, dalam MySQL:
CREATE TABLE test (str VARCHAR(10)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2. Tetapkan Pengekodan Sambungan
Apabila membuat sambungan pangkalan data dalam R, nyatakan pengekodan aksara yang betul.
RODBC:
con <- odbcDriverConnect('DRIVER=mysql;user=root', CharSet='utf8')
RMySQL:
Sambung dahulu dan kemudian jalankan:
dbConnect(MySQL(), user='root') dbSendQuery(con, 'SET NAMES utf8')
3. Tukar Pengekodan Aksara
Selepas mendapatkan semula keputusan, tukar pengekodan aksara lajur rentetan kepada 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')
Nota Tambahan:
Atas ialah kandungan terperinci Mengapa saya melihat aksara \"?????\" apabila mendapatkan semula teks UTF-8 daripada MySQL dalam R?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!