CI 묻고 답하기

제목 [초보]언어문제가 발생했어요.. ㅡ.ㅡ;
글쓴이 헛발이 작성시각 2009/12/23 12:51:27
댓글 : 7 추천 : 0 스크랩 : 0 조회수 : 27204   RSS
음...

일단 tank_auth를 이용해서 로그인을 하고 있답니다.. config에 보면 email.php라는 셋팅파일이 있는데요..
그 부분을 열어서 보니깐 ..
$config['charset'] = 'utf-8';
언어가 utf-8로 되어 있더라구요.. 그쵸 당연하죠..지금 웹페이지도 utf-8로 만들고 있고 에디터도 utf-8로 저장해서 하고 있으니깐요.. 당연한거죠..
메일 보내는거로 해보면 잘 가요.. 잘 보내고 잘 받고 문자도 잘 나오고.. 아주 훌륭해요...

근데 문제가.. ㅡ.ㅡ;;

실제 아웃룩에서 메일을 보내보면요...저 같은 경우는 JP니깐...ISO-2022-JP로 가더라구요..
그래서 소스를 그냥 사용하면 PC에서는 아주 잘 받는데.. 이게 휴대폰에서 받으면 영어만 받아 지네요.. ㅡ.ㅡ;

근데 그냥 회사 메일로 보내보면 PC도 잘 받고 휴대폰도 잘 받거든요.. 언어를 보니깐 ISO-2022-JP로 되어 있더라구요..
결국 저도 ISO-2022-JP로 해서 보내야 할거 같은데요...tank_auth를 사용하니 셋팅에 이미 utf-8로 되어 있어서 ..
소스를 수정했어요 ... 메일 보내는 부분을요..
$this->load->library('email');

$config['charset'] = 'ISO-2022-JP';		
$this->email->initialize($config);

$form_name = mb_convert_encoding($this->session->userdata('username'), 'ISO-2022-JP', 'utf-8');
$subject = mb_convert_encoding('[공지]'.$post['title'], 'ISO-2022-JP', 'utf-8');
$message = mb_convert_encoding(nl2br($post['comment']), 'ISO-2022-JP', 'utf-8');

$this->email->from($this->session->userdata('user_email'), $form_name);
$this->email->to($data->email);
$this->email->subject($subject);
$this->email->message($message);

$this->email->send();
$this->email->clear();
이렇게 햇는데.. PC도 깨지고 휴대폰도 깨지고.. ㅋㅋㅋ
음..
그냥 메일을 utf-8로 해서 보내면 안될듯 싶은데.. 뭐 방법이 있을까요 ?
 다음글 ci 를 이용해서 다국어 사이트 만들려면 어떻게 해야 ... (1)
 이전글 [초보]where (2)

댓글

변종원(웅파) / 2009/12/23 13:34:49 / 추천 0
$subject = mb_convert_encoding('[공지]'.$post['title'], 'ISO-2022-JP', 'utf-8');

이 라인에서 $subject echo로 뿌려보면 제대로 나오는지요?

EUC-JP, JIS, eucjp-win, sjis-win 등등 일본언어 엔코딩이 어떤건지 잘 몰라서... ^^;
한글은 $subject=iconv("UTF-8", "CP949", "$pw_subject"); 으로 바꿔서 보내는데..
변종원(웅파) / 2009/12/23 13:42:45 / 추천 0
찾아보니 base64로 한번더 엔코딩해서 보내야한다네요. ㅋ
http://www.xevious7.com/359
케이든 / 2009/12/23 14:02:59 / 추천 0
역시 웅파님
헛발이 / 2009/12/23 15:41:57 / 추천 0
음.. 일단 저도 일본애들 블로그에서 찾아 했는데..
$this->load->library('email');
$config['protocol'] = 'sendmail';
$config['mailpath'] = '/usr/sbin/sendmail';
$config['wordwrap'] = FALSE;
$config['charset'] = 'iso-2022-jp';
$this->email->initialize($config);
mb_language("ja");
mb_internal_encoding("UTF-8");

$form_name = mb_encode_mimeheader($this->session->userdata('username'),"iso-2022-jp","UTF-8");
$subject = mb_convert_encoding('[お知らせ]'.$post['title'],"iso-2022-jp","UTF-8");
$message = mb_convert_encoding($post['comment'],"iso-2022-jp","UTF-8");

$this->email->from($this->session->userdata('user_email'), $form_name);
$this->email->to($data->email);
$this->email->subject($subject);
$this->email->message($message);

$this->email->send();
$this->email->clear();
요렇게 했는데.. ㅡ.ㅡ;

PC에서 작성자, 제목, 내용 아주 잘 가고 잘 표시되구요..
휴대폰에서 작성자, 제목은 잘 표시 되고 내용이 깨져 버리네요.. ㅡ.ㅡ;;
변종원(웅파) / 2009/12/23 15:48:21 / 추천 0

휴대폰의 프로그램 만든 업체에 요청을 해야겠네요.
그건 그 업체에서 rfc표준을 지키지 않아서 일겁니다.

헛발이 / 2009/12/23 16:10:11 / 추천 0
^^; 근데 중요한건 아웃룩이나 hotmail.com으로 보내면 잘 온다는거죠..
아마 저의 문제일듯 ㅋㅋ
변종원(웅파) / 2009/12/23 16:28:55 / 추천 0

헛발이/ 그러니까 그 업체문제라는 겁니다. 한국도 인터넷초기에 어떤 업체는 제대로 가고 어떤 업체는 깨져서 가고 그랬습니다. gmail로 보내서 제대로 들어간다면 휴대폰 프로그램 만든 업체의 문제일 가능성이 높습니다. ^^