Commit 77c0b577 authored by Steven Wittens's avatar Steven Wittens

Now Drupal tries iconv, recode and mbstring to convert unknown XML encodings...

Now Drupal tries iconv, recode and mbstring to convert unknown XML encodings to UTF-8. It also throws a friendlier error message when none of these extensions is installed.
parent 71eca365
......@@ -1273,17 +1273,35 @@ function drupal_xml_parser_create(&$data) {
/*
* Unsupported encodings are converted here into UTF-8.
* Requires iconv, see http://www.php.net/iconv
* Requires the iconv, GNU recode or mbstring PHP extension.
*/
$php_supported = array('utf-8', 'iso-8859-1', 'us-ascii');
if (!in_array(strtolower($encoding), $php_supported)) {
if (function_exists('iconv')) {
$out = iconv($encoding, 'utf-8', $data);
$out = @iconv($encoding, 'utf-8', $data);
if ($out !== false) {
$data = $out;
$encoding = 'utf-8';
}
}
else if (function_exists('mb_convert_encoding')) {
$out = @mb_convert_encoding($data, 'utf-8', $encoding);
if ($out !== false) {
$data = $out;
$encoding = 'utf-8';
}
}
else if (function_exists('recode_string')) {
$out = @recode_string($encoding . '..utf-8', $data);
if ($out !== false) {
$data = $out;
$encoding = 'utf-8';
}
}
else {
watchdog(t("Unsupported XML encoding '%s'. Please install iconv, GNU recode or mbstring for PHP.", $encoding));
return 0;
}
}
$xml_parser = xml_parser_create($encoding);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment