Rumah > Artikel > pangkalan data > Bagaimana untuk Menyelesaikan Isu Pengekodan Aksara UTF-8 Apabila Mengambil Teks daripada MySQL dalam R?
Menyelesaikan Isu Pengekodan Aksara UTF-8 Apabila Mengambil Teks daripada MySQL dalam R
Mengambil semula teks yang dikodkan UTF-8 daripada pangkalan data MySQL ke dalam R boleh memberikan cabaran, menyebabkan aksara rosak dipaparkan sebagai "?" simbol. Beberapa percubaan untuk menyelesaikan isu ini menggunakan R dan pakej yang berbeza telah terbukti tidak berjaya.
Punca masalah ini terletak pada set aksara lalai yang digunakan oleh sambungan yang ditubuhkan dengan pangkalan data daripada R. Secara lalai, tempat R adalah ditetapkan kepada en_US.UTF-8, tetapi pangkalan data itu sendiri mungkin dikonfigurasikan untuk menggunakan set aksara yang berbeza, seperti latin1, yang tidak menyokong pengekodan UTF-8.
Untuk menyelesaikan isu ini, adalah perlu untuk pastikan sesi sambungan ditetapkan secara eksplisit untuk menggunakan pengekodan UTF-8. Terdapat dua pendekatan untuk mencapai ini:
Menggunakan RMySQL:
Selepas mewujudkan sambungan ke pangkalan data MySQL menggunakan dbConnect(MySQL()), laksanakan pertanyaan berikut:
SET NAMES utf8
Pertanyaan ini menukar set aksara untuk sesi semasa kepada UTF-8, memastikan sebarang pertanyaan berikutnya akan mendapatkan semula data yang dikodkan dengan betul dalam UTF-8.
Menggunakan RODBC :
Apabila menyambung ke pangkalan data menggunakan odbcDriverConnect(), nyatakan parameter CharSet=utf8 dalam rentetan DSN:
con <- odbcDriverConnect('DRIVER=mysql;user=root;CharSet=utf8')
Dengan menetapkan set aksara kepada UTF-8 secara eksplisit , sambungan yang diwujudkan melalui RODBC akan mendapatkan semula data menggunakan pengekodan yang betul, menyelesaikan isu dengan aksara yang rosak.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Isu Pengekodan Aksara UTF-8 Apabila Mengambil Teks daripada MySQL dalam R?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!