summaryrefslogtreecommitdiff
path: root/it_html.class
diff options
context:
space:
mode:
Diffstat (limited to 'it_html.class')
-rw-r--r--it_html.class4
1 files changed, 2 insertions, 2 deletions
diff --git a/it_html.class b/it_html.class
index f20c4be..91e3069 100644
--- a/it_html.class
+++ b/it_html.class
@@ -261,9 +261,9 @@ function _parse_args($args)
# internal
function fix_encoding($string, $silent = false)
{
- if (preg_match('/[\x20-\x7f][\x80-\xff][\x20-\x7f]/', $string))
+ if (grapheme_strlen($string) === null)
list($string, $error) = array(utf8_encode($string), utf8_encode("incorrectly utf8-encoded: " . trim($string)));
- else if ($string && preg_match('/[\x80-\xff]/', $string) && utf8_encode(utf8_decode($string)) === $string && htmlspecialchars(utf8_decode($string), ENT_COMPAT, "utf-8") !== "")
+ else if ($string && preg_match('/[\x80-\xff]/', $string) && grapheme_strlen(utf8_decode($string)) !== null && utf8_encode(utf8_decode($string)) === $string)
list($string, $error) = array(utf8_decode($string), utf8_encode("doubly utf8-encoded: " . trim($string)));
if ($error && !$silent)