एक MySQL डेटाबेस में, एक तालिका utf8 में एन्कोड किया गया है, लेकिन किसी कारण से कनेक्शन लैटिन 1 में है।utf8 में dplyr :: tbl कनेक्शन एन्कोडिंग कैसे बदलें?
res <- RMySQL::dbSendQuery(con,"show variables like 'character_set_%'")
dbFetch(res)
Variable_name Value
1 character_set_client latin1
2 character_set_connection latin1
3 character_set_database utf8mb4
4 character_set_filesystem binary
5 character_set_results latin1
6 character_set_server latin1
7 character_set_system utf8
8 character_sets_dir /usr/share/mysql/charsets/
This page explain how to set the connection's character set to utf8 using RMySQL।
RMySQL::dbGetQuery(con,"show variables like 'character_set_%'")
RMySQL::dbGetQuery(con,"set names utf8")
लेकिन मैं वास्तव में dplyr::tbl
उपयोग करने के लिए डेटाबेस क्वेरी करने के लिए पसंद करते हैं। चूंकि dplyr::src_mysql
द्वारा बनाए गए कनेक्शन में केवल एसक्यूएल स्टेटमेंट भेजने की संभावना है जो टेबल बनाते हैं। Utf8 एन्कोडिंग का उपयोग करने के लिए कनेक्शन सेटिंग सेट करने का एक आसान तरीका क्या है?
क्या आपने इसे देखा है? http://stackoverflow.com/questions/25934752/utf-8-encoding-with-dplyr-and-sqlite –
@ रोमन लूस्ट्रिक मैंने इसे धन्यवाद दिया है, मैं चरित्र कॉलम को utf8 में ' iconv() 'लेकिन यह एक हैक है और मैं सीधे utf8 में चरित्र वैक्टर पढ़ना चाहूंगा। विशेष रूप से क्योंकि डेटाबेस पहले से ही utf8 में है। –
मुझे तुम्हारा दर्द महसूस होता है। एन्कोडिंग गैर-लैटिन 1 डेटा वाले सभी के लिए एक झुकाव है। –