diff options
Diffstat (limited to 'vendor/fguillot/picofeed/lib/PicoFeed/Encoding')
-rw-r--r-- | vendor/fguillot/picofeed/lib/PicoFeed/Encoding/Encoding.php | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/vendor/fguillot/picofeed/lib/PicoFeed/Encoding/Encoding.php b/vendor/fguillot/picofeed/lib/PicoFeed/Encoding/Encoding.php index 0590c47b1..5821dd40c 100644 --- a/vendor/fguillot/picofeed/lib/PicoFeed/Encoding/Encoding.php +++ b/vendor/fguillot/picofeed/lib/PicoFeed/Encoding/Encoding.php @@ -15,7 +15,21 @@ class Encoding return $input; } - // convert input to utf-8; ignore malformed characters - return iconv($encoding, 'UTF-8//IGNORE', $input); + // suppress all notices since it isn't possible to silence only the + // notice "Wrong charset, conversion from $in_encoding to $out_encoding is not allowed" + set_error_handler(function() {}, E_NOTICE); + + // convert input to utf-8 and strip invalid characters + $value = iconv($encoding, 'UTF-8//IGNORE', $input); + + // stop silencing of notices + restore_error_handler(); + + // return input if something went wrong, maybe it's usable anyway + if ($value === false) { + return $input; + } + + return $value; } } |