개발 Q&A

제목 textarea에 html태그들 적고 파일로 저장
글쓴이 뫄뫄잉뿌 작성시각 2016/09/06 08:21:04
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 12629   RSS

파일을 직접 수정해야되는 코드를 짜고 있는데 

textarea에 html태그들을 적고 파일로 저장하려고 합니다.

음.. textarea에는 원본 파일을 불러온 htm파일의 코드들을 넣기까지는 잘 되었는데..

form태그로 controller에 보내 받아지는게 한글이 깨집니다..

mb_detect_encoding으로 찍어보니 utf-8인데 한글이 왜 깨지는 건지 모르겠습니다..

혹시나 해서 원본 파일을 보니 euc-kr이어서

iconv로 utf-8에서 euc-kr로 바꿔보니 아예 변환된 값이 없었습니다.

보내는쪽 헤더에도 추가해봤는데 변함이없네요.. 

post로 받고 나서 html 태그들이 인코딩 되길래 html_entity_decode 해줬더니 그런걸까요..ㅜㅜ근데 원본으로 하려면 html_entity_decode를 써야될거같은데..

 

+) form 태그에 enctype="multipart/form-data"을 쓰고 post로 보내서 controller쪽에 

$result = $_POST['code'];

echo mb_detect_encoding($result,'auto');            // UTF-8

echo $result;  // 정상적으로 한글 안깨지고 잘 나옴

근데 fwrite한 후 파일 열어보니 한글 깨짐...ㅜㅜ

$result = iconv("UTF-8", "EUC-KR",$_POST['code']); 로 바꾸고 재실행

==> mb_detect_encoding => ASCII 로 찍힘

 

혹시 아시는 분이나 비슷한 경험을 해보신 분들은 힌트 좀 부탁합니다..ㅜㅜ

 다음글 Unable to allocate memory for ... (3)
 이전글 지금 다니는 회사 소스때문에 골아파죽겠습니다. (10)

댓글

뫄뫄잉뿌 / 2016/09/06 09:50:45 / 추천 0
자문자답입니다. 해결했어요! 한글깨짐 해결 후 여태 html_entity_decode로 써서  때문에 골치였는데 다행히 php5이상 버전이어서 htmlspecialchars_decode를 쓰니 해결이 됬네요. form 태그 에서 accept-charset="EUC-KR"를 추가해주니 한글깨짐은 해결되었습니다.