'PHP에서 한글이 깨진다'는건 100% 출력 인코딩 설정 문제입니다. PHP가 스트링 처리를 바이트 단위로 하긴 하지만, 코드상에서 때려넣은건 그대로 출력을 해주기 때문입니다. (length를 별도로 가지고 있기 때문에, 사람에게 어떻게 보여지는가는 상관 없이 0x00 ~ 0xff 까지 모두 들어갑니다)
그리고 해결책으로는, 코드 출력 시작부에 header('Content-Type: text/html; charset=EUC-KR');
등을 넣어서 HTTP 헤더로 인코딩을 설정하거나, <meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
과 같이 HTML 출력을 해주는게 좋습니다.
아파치 설정이나 php.ini에서 인코딩을 강제로 지정하는건, 다른 문제-타 언어 스크립트의 출력 깨짐 등-를 야기할 수 있습니다. 스크립트 내부에서 처리를 해주는게 가장 깔끔한 방법입니다. (스크립트 내부에서 지정하면 다른 서버로 옮겨도 그대로 사용할 수 있습니다)
mbstring extension은 mb함수를 사용할 수 있게 해주는 것으로, (물론 기본 문자열 함수 호출시에도 사용하도록 설정할 수도 있긴합니다) PHP 내부의 문자열 처리와는 관련이 없습니다.
php.ini default_charset="x-windows-949"
php.ini default_charset="x-windows-949"
php 설치시 --with-charset=euc_kr --with-lan
php 설치시 --with-charset=euc_kr --with-language=korean 옵션을 적용
하셨나요?
나는 치과가 싫어요
질문이 짧으면 답변도 짧게 할 수 밖에 없다는 거 잘 아시죠?앞 뒤
질문이 짧으면 답변도 짧게 할 수 밖에 없다는 거 잘 아시죠?
앞 뒤 문맥 잘라 버리고 함축적으로 질문하시면 곤란합니다. ^^
제 생각입니다만 php에 관한 질문이라면 아무래도 phpschool.com에 질문하시는게
답변을 얻기에도 더 좋을 듯 합니다.
php 를 컴파일하셨다면 컴파일시에 --enable-mbstring 옵션
php 를 컴파일하셨다면 컴파일시에 --enable-mbstring 옵션을 해주어야 멀티바이트 처리가 가능해집니다.
'PHP에서 한글이 깨진다'는건 100% 출력 인코딩 설정 문제입니다.
'PHP에서 한글이 깨진다'는건 100% 출력 인코딩 설정 문제입니다. PHP가 스트링 처리를 바이트 단위로 하긴 하지만, 코드상에서 때려넣은건 그대로 출력을 해주기 때문입니다. (length를 별도로 가지고 있기 때문에, 사람에게 어떻게 보여지는가는 상관 없이 0x00 ~ 0xff 까지 모두 들어갑니다)
그리고 해결책으로는, 코드 출력 시작부에
header('Content-Type: text/html; charset=EUC-KR');
등을 넣어서 HTTP 헤더로 인코딩을 설정하거나,
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
과 같이 HTML 출력을 해주는게 좋습니다.
아파치 설정이나 php.ini에서 인코딩을 강제로 지정하는건, 다른 문제-타 언어 스크립트의 출력 깨짐 등-를 야기할 수 있습니다. 스크립트 내부에서 처리를 해주는게 가장 깔끔한 방법입니다. (스크립트 내부에서 지정하면 다른 서버로 옮겨도 그대로 사용할 수 있습니다)
mbstring extension은 mb함수를 사용할 수 있게 해주는 것으로, (물론 기본 문자열 함수 호출시에도 사용하도록 설정할 수도 있긴합니다) PHP 내부의 문자열 처리와는 관련이 없습니다.
댓글 달기