티스토리 뷰

php mysql 스크래핑 시 한글깨짐 

보통 요새는 utf8로 해서 한글깨지는 일이 별루 없긴 한데 

간혹 대상사이트가 euckr로 되어 있는 경우는 브라우저에서 볼때 한글이 깨진다. 

그래서 php 파일 상단에 

header("Content-Type: text/html; charset=euc-kr"); 

이걸 넣어주니 브라우저에서는 안깨지고 잘나왔다. 

그러나.. 

mysql 을 열어보니 ??? 등등 다 깨져 있었다.

흠.. 

어떻게 해야 하나... 삽질이 또 시작 되었다.. 

일단 파일 저장할때 ANSI, UTF8은 신경 안썼다. 

별 영향을 못미쳐 보이고 바꿔가면서 저장하기도 귀찮아서리.. 

mysql 테이블 설정을 utf8로 되어 있는것을 euc-kr로도 바꿔보았다.. 

그래도 안되었는데 이것도 기본설정을 다시 바꾸는거라 마음에 들지 않았다. 

그래서  

$titleU = iconv( 'euckr' , 'utf8' , $title); 

이런식으로 해봐도 역시나 깨지는 것이였다. 

나중에 알고보니 

$titleU = iconv( 'euc-kr' , 'utf-8' , $title); 

이런식으로 - 가 있어야 했다. 

(아놔 어디서는 - 붙이나 안붙이나 똑같이 나오더니 여기서는 가리네... 

이래서 표준을 잘 세우고 지켜야 되나보다.  

표준을 안지키고 편하게 쓸려다가 나중에 더 고생한다는...) 

위에서 넣었던  

header("Content-Type: text/html; charset=euc-kr"); 

을 빼고 $titleU를 찍어보니 UTF-8로 바뀐 한글은 브라우저에서 안깨지고 잘 나왔다. 

utf8로 안바꾼 한글은 브라우저에서 깨졌지만.. 

휴.. 한글깨짐 문제는 정말 힘들다... 

암튼 결론은 한글 깨지는 경우는 그냥  

$titleU = iconv( 'euc-kr' , 'utf-8' , $title); 

이것만 쓰면 될듯.. 

mysqli_query("set names utf8"); 
이거는 넣으나 안넣으나 차이가 없었다.
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함