2013-05-03 11 views
8

इसलिए मैंने एक स्क्रैपर बनाया और कुछ वस्तुओं में खींच रहा हूं। मुद्दा यह है कि कुछ विदेशी भाषाएं हैं और यह थोड़ी देर के लिए mysql डीबी tripping है। यह मुझे मिली त्रुटि है। कोई विचार है कि मैं इसके साथ क्या कर सकता हूं? धन्यवाद!MySQL - MySQL 2 :: त्रुटि: गलत स्ट्रिंग मान:

Mysql2::Error: Incorrect string value: '\xC5\x8Dga, ...' for column 'description' at row 1: INSERT INTO sammiches (country , created_at , description , image , name , updated_at) VALUES ('Japan', '2013-05-03 01:17:06', 'A hot dog bun stuffed with fried noodles, frequently topped with pickles, such as beni shōga, with mayonnaise', '/wiki/File:Yakisoba_sandwich_by_kaex0r.jpg', 'Yakisoba-pan', '2013-05-03

+0

उपयोग UTF-8 डेटाबेस में? – michaelb958

उत्तर

5

आप यहां जवाब पा सकते हैं। मुझे यकीन नहीं है कि डुप्लिकेट की रिपोर्ट कैसे करें। Mysql2::Error: Incorrect string value Rails 3 UTF8

आपकी सुविधा के लिए मुझे मेरे सवाल का जवाब


मैं इस मुद्दे को हाल ही में सामना करना पड़ा था दोहराना करते हैं। यह अनिवार्य रूप से mysql डिफ़ॉल्ट collation प्रकार utf8_unicode_ci नहीं है।

निम्नलिखित कार्य करें। यदि आपको करना है तो अपने डेटा का बैकअप लें। मैं डेटाबेस ड्रॉप और अंत में (phpMyAdmin यहाँ काम में आ सकते हैं) , आपका माइग्रेशन बहाल यह

rake db:drop 
rake db:create 

बदलें mysql डेटाबेस मिलान पुन: utf8_unicode_ci के लिए किया था।

rake db:migrate 

आनंद लें।

9

शायद आपकी तालिका एक गैर utf8 वर्ण सेट पर सेट है। आप इस एसक्यूएल के साथ इस बदल सकते हैं:

ALTER TABLE `your_database_name`.`your_table` CONVERT TO CHARACTER SET utf8 
+0

माइग्रेशन उपयोग के अंदर: 'ModelName.connection.execute (' अक्षर तालिका मॉडल_नाम कनवर्टर सेट करने के लिए कनवर्टर सेट करें ') ' –

+2

मुझे यह समस्या दिखाई दे रही है और मेरी तालिका पहले से ही यूटीएफ 8 है? –

+0

@TomRossi यह हो सकता है क्योंकि यह बहुभाषी विमान (https://dev.mysql.com/doc/refman/5.5/en/faqs-cjk.html#qandaitem-A-11-1-16) के बाहर है –

12

यह भी शुरू किया जा सकता है, तो स्ट्रिंग आप सम्मिलित की कोशिश कर रहे अवैध UTF-8 बाइट दृश्यों है। उदाहरण के लिए, माणिक में आप

string_with_invalid_sequences.encode('utf-8', 'binary', invalid: :replace, undef: :replace, replace: '') 

String#scrub का उपयोग कर किसी भी अमान्य वर्ण निकाल सकते हैं माणिक 2.1 में इस्तेमाल किया जा सकता बाद

string_with_invalid_sequences.scrub 
+2

I पता नहीं क्यों, लेकिन आप पहले सुझाव ने मेरी मदद की और स्क्रब मेरे लिए काम नहीं किया। – across

+0

@across - क्या यह आपके लिए काम करता है: 'string_with_invalid_sequences.scrub ('') '? – Mikey

+1

नहीं, यह मेरे लिए काम नहीं करता है। – across

संबंधित मुद्दे