summaryrefslogtreecommitdiff
path: root/modules/aggregator/aggregator.module
diff options
context:
space:
mode:
Diffstat (limited to 'modules/aggregator/aggregator.module')
-rw-r--r--modules/aggregator/aggregator.module7
1 files changed, 6 insertions, 1 deletions
diff --git a/modules/aggregator/aggregator.module b/modules/aggregator/aggregator.module
index fc6012319..be29a8995 100644
--- a/modules/aggregator/aggregator.module
+++ b/modules/aggregator/aggregator.module
@@ -325,8 +325,13 @@ function import_refresh($feed) {
return t("failed to parse RSS feed '%site': suspicious input data.", array("%site" => $feed["title"]));
}
+ // extract the XML file's encoding (the XML parser in PHP4 doesn't do this by itself):
+ if (ereg('encoding="([^"]+)"', $data, $match)) {
+ $encoding = $match[1];
+ }
+
// parse the data:
- $xml_parser = xml_parser_create();
+ $xml_parser = xml_parser_create($encoding);
xml_set_element_handler($xml_parser, "import_element_start", "import_element_end");
xml_set_character_data_handler($xml_parser, "import_element_data");
xml_parser_set_option($xml_parser, XML_OPTION_TARGET_ENCODING, "utf-8");