bug 1097: Also escape characters outside the ASCII range bug-1097
authorMichael Tänzer <neo@nhng.de>
Thu, 13 Sep 2012 16:49:22 +0000 (18:49 +0200)
committerMichael Tänzer <neo@nhng.de>
Thu, 13 Sep 2012 16:49:22 +0000 (18:49 +0200)
Signed-off-by: Michael Tänzer <neo@nhng.de>
locale/escape_special_chars.php

index 32de390..0f494f1 100644 (file)
@@ -41,6 +41,9 @@ function is_msgid($line) {
        return substr_compare($line, MSGID, 0, MSGID_LEN) === 0;
 }
 
+
+////////////// Main //////////////
+
 // Skip the metadata (first msgid/msgstr pair)
 while (!feof(STDIN)) {
        $line = fgets(STDIN);
@@ -65,7 +68,13 @@ while (!feof(STDIN)) {
        }
        
        if ($msgstr) {
+               // Escape everything that has a special HTML entity such as
+               // &gt; or &auml; except quote characters
                $line = htmlentities($line, ENT_NOQUOTES, "UTF-8");
+               
+               // Escape everything else -> all characters that don't have a special
+               // HTML entity but are outside the ASCII range
+               $line = mb_convert_encoding($line, "HTML-ENTITIES", "UTF-8");
        }
        echo $line;
 }