2011-01-23 17 views
6

मुझे क्लाउडमेलिन से रेल ईमेल को निगलना करते समय निम्न PGError मिल रहा है:PGError: त्रुटि: एन्कोडिंग के लिए अमान्य बाइट अनुक्रम "यूटीएफ 8

PGError: ERROR: invalid byte sequence for encoding "UTF8": 0xbb HINT: This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding". : INSERT INTO "comments" ("content") VALUES ('Reply with blah blah ����������������������������������������������������� ..... 

तो यह बहुत स्पष्ट लगता है कि मेरे पास कुछ अमान्य यूटीएफ 8 वर्ण ईमेल में सही हैं? तो मैंने इसे साफ करने की कोशिश की लेकिन कुछ अभी भी छेड़छाड़ कर रहा है। यहां मेरे पास अभी तक है:

message_all_clean = params[:message] 
Iconv.conv('UTF-8//IGNORE', 'UTF-8', message_all_clean) 
message_plain_clean = params[:plain] 
Iconv.conv('UTF-8//IGNORE', 'UTF-8', message_plain_clean) 

@incoming_mail = IncomingMail.create(:message_all => Base64.encode64(message_all_clean), :message_plain => Base64.encode64(message_plain_clean)) 

कोई विचार, विचार या सुझाव? धन्यवाद

उत्तर

8

हरोकू पर इस मुद्दे का सामना करते समय, हम आने वाले डेटा को उचित रूप से स्वच्छ करने के लिए यूएस-एएससीआईआई में परिवर्तित हुए (यानी। शब्द से चिपकाया गया):

Iconv.conv("UTF-8//IGNORE", "US-ASCII", content) 

इसके साथ, हमारे पास चरित्र एन्कोडिंग के साथ कोई और समस्या नहीं थी।

इसके अलावा, दो बार जांचें कि समान रूपांतरण की आवश्यकता वाले कोई अन्य फ़ील्ड नहीं हैं, क्योंकि यह डेटाबेस में टेक्स्ट के ब्लॉक को पार करने वाली किसी भी चीज़ को प्रभावित कर सकता है।

+1

धन्यवाद लेकिन मुझे क्लीन = Iconv.conv ("यूटीएफ -8 // इग्नोर", "यूएस-एएससीआईआईआई", सामग्री) जैसे कुछ करने की ज़रूरत है या Iconv सामग्री var को परिवर्तित करता है और मैं केवल सामग्री भेज सकता हूं डीबी? – AnApprentice

+2

आह, मुझे यकीन नहीं है। वास्तविक अभ्यास में, मैंने एक आईकॉनव ऑब्जेक्ट बनाया (आईसी = आईकॉनवी.न्यू ("यूटीएफ -8 // इग्नोर", "यूएस-एएससीआईआईआईआई")), और उसके बाद आइकनव विधि: सामग्री = ic.iconv (सामग्री) का उपयोग किया। Iconv.conv() उस के लिए एक शॉर्टेंड लगता है, लेकिन मुझे एक पुन: प्रयोज्य वस्तु पसंद करना पसंद आया। – Dominic

+2

इसे रूबी में कैसे परिवर्तित करें 1.9.3 जहां Iconv को बहिष्कृत किया गया है? –

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