UTF-8 헤더(header) 오류
EUC-KR 에서는 header가 선언되기 이전에 그 어떤 출력(공백/엔터/HTML등)도 선행되어서는 안됩니다.
소스 코드의 최상단에 (HTML 및 그 어떤 출력도 나오기 전) 다음과 소스를 삽입하세요.
<?
ob_start();
HTML이나 기타 출력되는 값을 메모리에 저장해 두었다가 프로그램 종료시 한꺼번에 내보내는 명령입니다.
이 펑션이 호출된 이후에 header() 를 만나면 어떤 HTML 출력과도 관계 없이 정상 실행합니다.
단, 기존의 게시판이나 기타 프로그램을 수정하고 계시며, 해당 프로그램에서도 ob_start()를 중복 사용하고 있다면, 해당 프로그램에서의 ob_start() 사용 용도에 따라 HTML출력에 또다른 문제가 발생할 수 있습니다(일반적인 경우 문제 없습니다)
EUC-KR에서는 헤더 선언전에 출력문자를 없애거나 ob_start();를 사용하면 아무런 문제가 생기지 않습니다.
문제는 UTF-8이죠..^^ 요거 때문에 저도 한참 헤맸습니다.
Warning: Cannot modify header information - headers already sent by.....
..등 비슷한 에러도 마찬가지입니다.
이 문제는 파일을 메모장, 울트라에디터(ultraedit)등 텍스트에디터로 utf-8로 컨버팅해서 저장시 눈에 보이지 않는 기호를 파일을 헤더에 포함시켜서 생긴것입니다.
EMEDITOR라는 텍스트에디터를 사용해보세요. 파일 저장시 Add a unicode signature(BOM)체크박스 선택을 해제시키세요.
http://www.emeditor.com/download.htm (30일간만 무료사용)
또는..
에디터플러스로 새문서를 열어서 기존 코드를 붙혀넣기 한 후..
인코딩을 UTF-8로 저장하세요. 그럼 헤더 오류가 나오지 않습니다.
저장전 에디터플러스 도구 > 기본설정 > 항목의 파일 선택 > 우측 UTF-8 셀렉트 옵션에서 "항상 식별기호 제거" 선택 후 저장 하시구요.
간혹 UTF-8인데 EUC-KR로 인식하는 경우 하얀 백지 화면이 나오는데 이럴땐..
최 상단에..
<?
header('Content-Type: text/html; charset=utf-8');
..을 선언해주세요.
'인터넷정보' 카테고리의 다른 글
네이버 실시간 급상승 검색어 산출방법 (0) | 2008.05.23 |
---|---|
75달러 노트북 나온다… OLPC 'XO 2.0' 개발 중 (0) | 2008.05.21 |
75달러 노트북 나온다… OLPC 'XO 2.0' 개발 중 (0) | 2008.05.21 |
php 에서 utf-8 인지 euc-kr 인지.. 알수 있는 방법 (0) | 2008.04.11 |
php 에서 utf-8 인지 euc-kr 인지.. 알수 있는 방법 (0) | 2008.04.11 |
UTF-8 헤더(header) 오류 (0) | 2008.04.10 |
리눅스용 프로그램들 (0) | 2008.03.28 |
리눅스용 프로그램들 (0) | 2008.03.28 |
플래시플레이어(Adobe Flash Player 7,8,9) 재설치 (0) | 2008.03.27 |
플래시플레이어(Adobe Flash Player 7,8,9) 재설치 (0) | 2008.03.27 |