summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rss.go9
1 files changed, 6 insertions, 3 deletions
diff --git a/rss.go b/rss.go
index 1a45fae..ecf6f24 100644
--- a/rss.go
+++ b/rss.go
@@ -3,8 +3,10 @@ package rss
import (
"encoding/xml"
- "io/ioutil"
"net/http"
+
+ "code.google.com/p/go-charset/charset"
+ _ "code.google.com/p/go-charset/data"
)
// RSS container
@@ -39,8 +41,9 @@ func Fetch(url string) (rss RSS, err error) {
return rss, err
}
defer resp.Body.Close()
- body, err := ioutil.ReadAll(resp.Body)
- err = xml.Unmarshal(body, &rss)
+ decoder := xml.NewDecoder(resp.Body)
+ decoder.CharsetReader = charset.NewReader
+ err = decoder.Decode(&rss)
if err != nil {
return rss, err
}