// strRSSUrl 의 소스 받기
UnicodeString strXML = IdHTTP->Get( strRSSUrl );
그래서 인터넷에서 관련 정보를 찾다가 일본 웹페이지에서 델파이를 사용할때 비슷한 문제가 발생하여 해결 했다는 글을 찾았다. 그 글을 참고하여 C++ Builder 로 바꾸어 보았다. 아래 코드가 바꾼 코드이다.
// Stream 으로 받아서 Encoding 을 하여 받는 방법
TMBCSEncoding* pEnc = new TMBCSEncoding( 949 );
TMemoryStream* pStream = new TMemoryStream();
IdHTTP->Get( strRSSUrl, pStream );
pStream->Position = 0;
TStrings* pStrXML = new TStringList();
pStrXML->LoadFromStream( pStream, pEnc );
AnsiString strContentXML = AnsiString( pStrXML->GetText() );
int size = strContentXML.Length();
pEnc->Free();
pStream->Free();
pStrXML->Free();
위의 코드로 하니 한글이 깨지지 않았다. 그렇지만 완전한 해결책은 아닌 것 같다.
두가지 방법으로 다른 웹페이지를 접근해 보았는데 Stream 으로 받아 Encode을 거쳐 받는 방법이 항상 한글이 정상적으로 보여지지는 않았다. 웹페이지의 인코딩 방법에 따른 것도 아닌 것 같고, 일단 GMP RSS 분석에서는 문제가 없었지만 깔끔하게 해결하기 위해서는 문제의 원인을 먼저 파악 해
Original Post : http://neodreamer-dev.tistory.com/292
No comments :
Post a Comment