PHP로 짠 코드에서 한글 부분이 안나와요.

crazygun22의 이미지

PHP로 짠 코드에서 한글 부분이 안나와요.

영어로 된 부분은 출력되는데 한글부분은 깨어져서

나옵니다. 아파치를 사용하거던요.

어떻게 해야하는지요..?

익명 사용자의 이미지

php.ini default_charset="x-windows-949"

taxyshop의 이미지

php 설치시 --with-charset=euc_kr --with-language=korean 옵션을 적용
하셨나요?

나는 치과가 싫어요

jinie4u의 이미지

질문이 짧으면 답변도 짧게 할 수 밖에 없다는 거 잘 아시죠?
앞 뒤 문맥 잘라 버리고 함축적으로 질문하시면 곤란합니다. ^^

제 생각입니다만 php에 관한 질문이라면 아무래도 phpschool.com에 질문하시는게
답변을 얻기에도 더 좋을 듯 합니다.

lovethecorners의 이미지

php 를 컴파일하셨다면 컴파일시에 --enable-mbstring 옵션을 해주어야 멀티바이트 처리가 가능해집니다.

progcom의 이미지

'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 내부의 문자열 처리와는 관련이 없습니다.