mirror of
https://github.com/php/php-src.git
synced 2026-04-26 09:28:21 +02:00
- Fix bug #29199 (html_entity_decode() misbehaves with UTF-8)
This commit is contained in:
+6
-5
@@ -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);
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
--TEST--
|
||||
Bug #29199 (html_entity_decode() misbehaves with UTF-8)
|
||||
--FILE--
|
||||
<?php
|
||||
var_dump(bin2hex(html_entity_decode('  ‘†′⁄€', ENT_QUOTES, 'UTF-8')));
|
||||
?>
|
||||
--EXPECT--
|
||||
string(42) "e28082e28089e28098e280a0e280b2e28184e282ac"
|
||||
Reference in New Issue
Block a user