간단한 원인 : 엉뚱한 곳에서 빈 줄이 출력되었다.

원인 : 
  • 엉뚱한 곳에서 (보통 xe/files/config/config.user.inc.php 에서 실수함) 빈 줄이 추가됨
  • 실제로 날라오는 XML자료의 첫 번째 줄에 <response>가 나타나지 않고 빈 줄이 추가됨
  • xml을 처리한 javascript상에서 xml이 아닌 일반 메시지로 판단 
    (정규식에 의해 첫 번째에 <response>가 나타나면 xml로 파싱해서 처리하고 그렇지 않으면 일반 메시지로 판단
    앞에 새 줄(\n)이 있으므로 /^<response>/에 해당하지 않으므로 일반 메시지로 판단됨)
  • 해당 경고 메시지가 뜬다
추가 : 이런 경우는 보통 __OB_GZHANDLER_ENABLE__ 을 활성화 하면 에러남
  • 메시지 내용은 header상에서는 압축되었다고 했으나, 정작 메시지 내용은 압축된 자료 앞에 \n이 추가되어됨
  • 브라우저상에서 정상적인 압축 자료로 인식하지 못하고 지원하지 않는 인코딩이라는 창이 뜸

해결 방법 : 엉뚱한 빈 줄을 찾아야 된다. (output buffering 기능을 끄면 header전에 출력되는곳을 알 수 있으나 정작 어디서 꺼야될지는 정확하게 모르겠다.) 일단 xe/files/config/config.user.inc.php에 빈 줄이 있는 지 (특히 <? 앞이나 ?> 뒤에 확인할 것) 확인한다.


Posted by Parker Falcon
XML 기술을 이용한 사이트를 구현하는것이 프로젝트의 목적이었습니다.

XSL을 디자인 하면서,

PHP를 이용하여 XML을 출력하려고 하였습니다만,

역시나 인터넷 상에서 가장 큰 문제는 한글 처리였습니다.

apache - php - mysql의 인코딩 문제인지,

XML-XSL등의 문제인지,

UTF-8로 했을 때는 한글도, 띄워쓰기도, 그리고 새 줄 <br />

도 잘 작동 하지 않았습니다.

반면에 EUC-KR 로 바꾸었을 때는 주소창에서 한글이 제대로 작동하지 않더군요.

결론을 내리지 못하였지만, UTF-8을 쓸 때 한글 사용이 좀 더 쉬웠으면 편하게 작업할 수 있었겠군요..
Posted by Parker Falcon