]> granicus.if.org Git - php/commitdiff
- Fix bug #29199 (html_entity_decode() misbehaves with UTF-8)
authorMoriyoshi Koizumi <moriyoshi@php.net>
Mon, 19 Jul 2004 17:46:30 +0000 (17:46 +0000)
committerMoriyoshi Koizumi <moriyoshi@php.net>
Mon, 19 Jul 2004 17:46:30 +0000 (17:46 +0000)
ext/standard/html.c
ext/standard/tests/strings/bug29199.phpt [new file with mode: 0644]

index 4f8a4be46bf0ce1422d05ed09c8ad1e9371baf3d..e3a38c3d1572547809b2973a2c4399420a6b8383 100644 (file)
@@ -157,11 +157,13 @@ static entity_table_t ent_uni_punct[] = {
        "ensp", "emsp", NULL, NULL, NULL, NULL, NULL,
        "thinsp", NULL, NULL, "zwnj", "zwj", "lrm", "rlm",
        NULL, NULL, NULL, "ndash", "mdash", NULL, NULL, NULL,
-       "lsquo", "rsquo", "sbquo", NULL, "ldquo", "rdquo", "bdquo",
+       /* 8216 */
+       "lsquo", "rsquo", "sbquo", NULL, "ldquo", "rdquo", "bdquo", NULL,
        "dagger", "Dagger",     "bull", NULL, NULL, NULL, "hellip",
        NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "permil", NULL,
-       "prime", "Prime", NULL, NULL, NULL, NULL, NULL, "lsaquo", "rsaquo",
-       NULL, NULL, NULL, "oline", NULL, NULL, NULL, NULL, NULL,
+       /* 8242 */
+       "prime", "Prime", NULL, NULL, NULL, NULL, NULL, "lsaquo", "rsaquo", NULL,
+       NULL, NULL, "oline", NULL, NULL, NULL, NULL, NULL,
        "frasl"
 };
 
@@ -899,8 +901,7 @@ PHPAPI char *php_unescape_html_entities(unsigned char *old, int oldlen, int *new
 
                                if (entity_map[j].table[k - entity_map[j].basechar] == NULL)
                                        continue;
-                       
-                               
+
                                entity[0] = '&';
                                entity_length = strlen(entity_map[j].table[k - entity_map[j].basechar]);
                                strncpy(&entity[1], entity_map[j].table[k - entity_map[j].basechar], sizeof(entity) - 2);
diff --git a/ext/standard/tests/strings/bug29199.phpt b/ext/standard/tests/strings/bug29199.phpt
new file mode 100644 (file)
index 0000000..bb2707f
--- /dev/null
@@ -0,0 +1,8 @@
+--TEST--
+Bug #29199 (html_entity_decode() misbehaves with UTF-8)
+--FILE--
+<?php
+var_dump(bin2hex(html_entity_decode('&ensp;&thinsp;&lsquo;&dagger;&prime;&frasl;&euro;', ENT_QUOTES, 'UTF-8')));
+?>
+--EXPECT--
+string(42) "e28082e28089e28098e280a0e280b2e28184e282ac"