2011-01-23 24 views
6

Cloudmail'den Rails e-postalarını alırken aşağıdaki PGError'u alıyorum:PGError: ERROR: "UTF8 kodlamak için geçersiz bayt dizisi

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 ����������������������������������������������������� ..... 

Bu yüzden eposta hakkına giren bazı geçersiz UTF8 karakterleri var mı? Bu yüzden onu temizlemeye çalıştım ama bir şey hala gizlice. Şimdiye kadar sahip olduğum şeyler:

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)) 

Herhangi bir fikir, düşünce veya öneriniz var mı? Teşekkürler

cevap

8
TeşekkürBu konuyu Heroku ile karşılaştığında, gelen verileri uygun şekilde sterilize etmek için ABD-ASCII'ye dönüştürdük (örn.) Word yapıştırılan: Bununla

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

, biz karakter kodlaması ile artık sorunları vardı.Aynı zamanda, veritabanına bir metin bloğu ileten herhangi bir şeyi etkileyebileceğinden, aynı dönüşüme ihtiyaç duyan başka alan olmadığını da kontrol edin.

+1

Teşekkürler ama CLEAN = Iconv.conv ("UTF-8 // IGNORE", "US-ASCII", içerik) gibi bir şey yapmam gerekiyor veya Iconv, içerik varını dönüştürüyor ve sadece içerik gönderebiliyorum. DB? – AnApprentice

+2

Ah, emin değilim. Gerçek uygulamada, bir Iconv nesnesi (ic = Iconv.new ("UTF-8 // IGNORE", "US-ASCII")) oluşturdum ve ardından iconv yöntemini kullandım: content = ic.iconv (content). Iconv.conv() bunun için bir kısa yol gibi görünüyor, ancak yeniden kullanılabilir bir nesne olmasını tercih ettim. – Dominic

+2

Nasıl Iconv indirilmeyen Ruby 1.9.3'e dönüştürmek için? –

İlgili konular