2011-05-11 3 views
1

좋아, 나는 주제와 본문 모두에서 일본어와 영어를 가지고 있으며, 다른 하나는 iso-8859-1에있는 것처럼 보이는 두 개의 이메일을 가지고있다.레일 3 메일 보석을 도와주세요!

나는 이메일을 보내면 콘솔과 브라우저 모두에서 제대로 표시된다. 또한 내 데이터베이스 (mongodb)에 저장합니다. 그래서 나는 utf-8 로의 변환을 적절하게 추정한다.

문제는 text_body 및 html_body에서 동일한 작업을 수행하는 방법입니까?

email.html_part.decoded를 데이터베이스에 저장하려고하면 utf-8 오류가 아닌 문자열이 표시됩니다. 또한 email.html_part.decoded.force_encoding ("UTF-8")을 수행하더라도이 오류가 발생합니다. email.html_part를 사용하면 데이터베이스에 저장할 수는 있지만보기에는 올바르지 않습니다.

콘텐츠 형식처럼 제공 : 텍스트/일반; 캐릭터 세트 = ISO-8859-1 콘텐츠 전송 인코딩 : 인용 - 인쇄 내용-ID :!

= 0 D 체크 = 0 D = 0 D 사람 : [email protected]=0D 제목 : 호화로운 알래스카 요트 휴가에 거의 A32,000을 절약하십시오! =에서 0D 는 : 2011년 (화) 5시 39분 24초 -0500 = 0 D = 0 D = 0 D = 0 D = 0 D = 0 D = 0 D

10 : 날짜를 [email protected]=0D

및 japanses 일이

콘텐츠 형식처럼 제공 : 텍스트/일반; 캐릭터 = ISO-2022-JP 콘텐츠 전송 인코딩 : 7 비트 콘텐츠 ID :

가입일 : [email protected] 다음과 [email protected] 제목 ($ B %의 Q %의 (B) "나는 빵을 먹지 않을 것이다" 날짜 : 화요일, 10 5 월 2011 21:13:55 +0000

음수는 동사를 굴절시켜 형성됩니다. (B) "나는 빵을 먹을 것이다"또는 "나는 빵을 먹는다"는 팬 오태 ($ B % Q % s $)가된다. r) $ Y $ J $$! # (B) "나는 빵을 먹지 않을 것이다"또는 "나는 빵을 먹지 않는다". 일반 부정형은 실제로 i 형용사 (아래 참조)이며 그대로 사용합니다. (B) 나는 빵을 먹지 않았다. "(B) 나는 빵을 먹지 않았다.

나는 레일 3.0.7과

사람이 도움을 줄 수 바랍니다 루비 1.9.2-P180을 사용하고? 감사는 릭은

답변

2

는 첫 번째 메일은 사용자가 String#unpack를 사용하여 압축을 풀 수있는 '인쇄 할 인용'된다

str = "=0D check!=0D =0D To: [email protected]=0D Subject: Save almost =A32,000 on a luxury Alaskan yacht holiday! =0D From: [email protected]=0D Date: Tue, 10 May 2011 05:39:24 -0500=0D =0D =0D =0D =0D =0D =0D".unpack('M').first 
=> "\r check!\r \r To: [email protected]\r Subject: Save almost \xA32,000 on a luxury Alaskan yacht holiday! \r From: [email protected]\r Date: Tue, 10 May 2011 05:39:24 -0500\r \r \r \r \r \r \r" 

당신은 ISO-8859-1로 선언하고 UTF-8로 변환하려면 :

str.force_encoding('iso-8859-1').encode('utf-8') 
"\r check!\r \r To: [email protected]\r Subject: Save almost £2,000 on a luxury Alaskan yacht holiday! \r From: [email protected]\r Date: Tue, 10 May 2011 05:39:24 -0500\r \r \r \r \r \r \r" 

두 번째 메일에서도 마찬가지입니다.

+0

감사합니다. 자동으로 email.html_body에서 강제로 인코딩을받을 수 있나요? 즉. force_encoding (email.htm_body.ecoding?). encode ('utf-8') – rick

+0

메일 개체에서 인코딩을 직접 가져올 수 있는지 확인하십시오. – Reactormonk

관련 문제