1

주제: RSS Reader 에서 euc-kr 피드 못가져오는 이유

component/Eolin.PHP.Core.php 파일에서 정의된 XMLStruct 클래스의 문제입니다.
분명히 코드상으로는 XMLStruct 내의 open() 도입부에 보면 isUTF8()를 이용하여 utf8 문서가 아니면
해당 xml 문서의 encoding 을 판별하여 변환하도록 하는 구문이 있습니다.

그런데, 클래스 밖에 존재하는 isUTF8() 을 읽지 못하는 것 같습니다.
구문 오류가 발생하지는 않아 왜 동작하지 않는지는 좀 더 생각해봐야겠습니다.
XMLStruct 클래스 내에 isUTF8() 을 정의한 뒤, XMLStruct::isUTF8() 로 바꿔주니 동작합니다.

또한 문제점이, 문자열의 캐릭터셋이 바뀌었다고는 하나 XML 데이터의 도입부에는
여전히 encoding="euc-kr" 등으로 설정된 구문이 남아있습니다. 이 때문에 정상적으로 xml parse 가 진행되지 않습니다.

$xml = preg_replace("/\<\?xml version\=\"1\.0\" encoding\=\"(.*)\" \?\>/ismU",'<?xml version="1.0" encoding="UTF-8" ?>',$xml);
이렇게 XML 도입부를 바꾸어주면 제대로 읽어들입니다.

2

답글: RSS Reader 에서 euc-kr 피드 못가져오는 이유

정말 못 읽어오는군요 ;;;

지금 확인해보니 티켓으로 등록되었네요 smile

"Everything looks different on the other side."

-Ian Malcomm, from Michael Crichton's 'The Jurassic Park'