2010-01-07 1 views
1

이 코드는 아마도 간단하고 이전에 요청되었을 수도 있지만 솔루션을 찾는 데 어려움이 있습니다.XML에서 확장 문자 디코딩

HTML을 CDATA 블록으로 포함하는 일부 RSS 피드를 구문 분석하고 있습니다. 한 예가 여기에 있습니다. http://g.msn.com/1ewenus50/news2

피드가 많이 변경되지만 거의 항상 확장 문자가 있습니다. 예를 들어 간단한 콘솔 앱을 만들고 WebClient.DownloadString을 사용하여 결과를 보면, 나는 그가 크리스마스 중순 비행을하는 동안 비행 253 폭격기의 극단 주의자 링크에 대해 알게 된

과 같은 것을 봅니다. 일. NBCA € ™의 사바나 오클라호마 reports. 등

제대로 디코딩이를 얻기위한 트릭은 무엇입니까

그러나 그 이상한 문자가 작은 따옴표, 인용 부호해야한다 (오늘 쇼) "안에 대시, ?

명확하지 않은 경우 C#/.NET을 사용하고 있습니다. 결국이 콘텐츠는 Silverlight에서 렌더링되지만 전체 .NET 3.5 런타임에서도 문제가 발생합니다.

+0

"이전에 물어 보았을 것입니다."그래서보고 있었습니까? – AnthonyWJones

+0

나는 조금 주위를 검색했지만 같은 문제를 찾지 못했습니다. 그렇다고해서 거기에 없다는 것은 아닙니다. –

+0

브라우저에서 내용이 제대로 보이나요? – AnthonyWJones

답변

0

이진 형식으로 다운로드하고 XML로 구문 분석하십시오. 그 맞아야한다 - XML ​​문서는 인코딩 측면에서 자체 설명해야하지만, 어떤 웹 서버 (머리글)에 다른 인코딩을 가지고 그것을 광고하도록 두지는 않을 것이고, 이것은 DownloadString을 혼란스럽게 할 것이다.

일반적으로 XML이 관련된 경우 원시 데이터가 아닌 XML API에서 가능한 한 많이 수행 할 가치가 있습니다.

+0

여기 있습니다. 감사. 작동 방식 : 바이트 [] bar = w.DownloadData (새 Uri ("http://g.msn.com/1ewenus50/news2")); 문자열 baz = 새 UTF8Encoding(). GetString (막대); var x = XDocument.Parse (baz); –

0

아마도 당신은 틀린 문자 인코딩을 사용하고 있습니다 ... 당신이 사용하고있는 것이 맞는지, 어느 것이 옳은 것인지 모르겠지만, 이것은 당신을 길에 올릴지도 모릅니다.