본문 바로가기
호구지책/웹

[PHP] 한글이 물음표(???)로 나올 때

by 하늘의흐름 2016. 2. 12.
반응형

거의 이틀동안 이것과 씨름했다.

한글이 깨지는 것은 포착했는데,

왜 한글이 깨지는지, 인코딩을 어떻게 복구해야 

한글이 제대로 표시되는지

이해할 수 없었다.


사실 깨지는 것부터 이해가 되지 않았다.


mysql에서 show variables like '%C%'

를 하면 인코딩 설정을 볼 수 있는데,

이걸 mysql에서 쿼리했을 때랑

php 웹에서 쿼리했을 때랑

결과가 다르게 나온다.


php인코딩 설정에 의해서

mysql 설정보다 우선순위가 높게 적용되는 것이다.


그래서 원래 utf8이었는데,

latin1으로 인코딩이 잡혀 있었다.


그 차이점을 발견하고 나서 대처법을 구해보았다.



mysql_query("set session character_set_client=euckr");

mysql_query("set session character_set_connection=euckr");  

mysql_query("set session character_set_results=euckr"); 


이렇게 세션 인코딩을 설정하여서

쿼리를 해오면

깨진 한글을 정상적으로 불러 올 수 있게 된다.


와우 드디어 해결!!


반응형

댓글