스크래핑,파싱
php mysql 스크래핑 시 한글깨짐
xemaker
2018. 4. 26. 14:01
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");
이거는 넣으나 안넣으나 차이가 없었다.
보통 요새는 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");
이거는 넣으나 안넣으나 차이가 없었다.