mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
Switch default_charset, if not specified, from ISO-8859-1 to UTF-8
I have been wanting to make this change for years, but there is a small chance of BC issues, so it shouldn't go into a minor release.
This commit is contained in:
1
NEWS
1
NEWS
@@ -1,6 +1,7 @@
|
||||
PHP NEWS
|
||||
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
?? ??? 201?, PHP 5.3.99
|
||||
- default_charset if not specified is now UTF-8 instead of ISO-8859-1. (Rasmus)
|
||||
|
||||
?? ??? 20??, PHP 5.3.3
|
||||
- Upgraded bundled PCRE to version 8.01. (Ilia)
|
||||
|
||||
@@ -711,17 +711,17 @@ inline static unsigned int get_next_char(enum entity_charset charset,
|
||||
|
||||
/* {{{ entity_charset determine_charset
|
||||
* returns the charset identifier based on current locale or a hint.
|
||||
* defaults to iso-8859-1 */
|
||||
* defaults to UTF-8 */
|
||||
static enum entity_charset determine_charset(char *charset_hint TSRMLS_DC)
|
||||
{
|
||||
int i;
|
||||
enum entity_charset charset = cs_8859_1;
|
||||
enum entity_charset charset = cs_utf_8;
|
||||
int len = 0;
|
||||
zval *uf_result = NULL;
|
||||
|
||||
/* Guarantee default behaviour for backwards compatibility */
|
||||
/* Default is now UTF-8 */
|
||||
if (charset_hint == NULL)
|
||||
return cs_8859_1;
|
||||
return cs_utf_8;
|
||||
|
||||
if ((len = strlen(charset_hint)) != 0) {
|
||||
goto det_charset;
|
||||
@@ -855,7 +855,7 @@ det_charset:
|
||||
}
|
||||
}
|
||||
if (!found) {
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "charset `%s' not supported, assuming iso-8859-1",
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "charset `%s' not supported, assuming utf-8",
|
||||
charset_hint);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,25 +22,25 @@ var_dump(htmlspecialchars(b"<>", ENT_COMPAT, str_repeat('a', 100)));
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: htmlspecialchars(): charset `1' not supported, assuming iso-8859-1 in %s on line %d
|
||||
Warning: htmlspecialchars(): charset `1' not supported, assuming utf-8 in %s on line %d
|
||||
string(35) "<a href='test'>Test</a>"
|
||||
|
||||
Warning: htmlspecialchars(): charset `12' not supported, assuming iso-8859-1 in %s on line %d
|
||||
Warning: htmlspecialchars(): charset `12' not supported, assuming utf-8 in %s on line %d
|
||||
string(35) "<a href='test'>Test</a>"
|
||||
|
||||
Warning: htmlspecialchars(): charset `125' not supported, assuming iso-8859-1 in %s on line %d
|
||||
Warning: htmlspecialchars(): charset `125' not supported, assuming utf-8 in %s on line %d
|
||||
string(35) "<a href='test'>Test</a>"
|
||||
string(35) "<a href='test'>Test</a>"
|
||||
|
||||
Warning: htmlspecialchars(): charset `12526' not supported, assuming iso-8859-1 in %s on line %d
|
||||
Warning: htmlspecialchars(): charset `12526' not supported, assuming utf-8 in %s on line %d
|
||||
string(35) "<a href='test'>Test</a>"
|
||||
string(8) "<>"
|
||||
|
||||
Warning: htmlspecialchars(): charset `8666' not supported, assuming iso-8859-1 in %s on line %d
|
||||
Warning: htmlspecialchars(): charset `8666' not supported, assuming utf-8 in %s on line %d
|
||||
string(8) "<>"
|
||||
string(8) "<>"
|
||||
string(8) "<>"
|
||||
string(8) "<>"
|
||||
|
||||
Warning: htmlspecialchars(): charset `aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' not supported, assuming iso-8859-1 in %s on line %d
|
||||
Warning: htmlspecialchars(): charset `aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' not supported, assuming utf-8 in %s on line %d
|
||||
string(8) "<>"
|
||||
|
||||
@@ -53,33 +53,33 @@ array(4) {
|
||||
string(5) "&"
|
||||
}
|
||||
-- with table = HTML_ENTITIES --
|
||||
array(100) {
|
||||
array(171) {
|
||||
[" "]=>
|
||||
string(6) " "
|
||||
string(4) "Π"
|
||||
["¡"]=>
|
||||
string(7) "¡"
|
||||
string(5) "Ρ"
|
||||
["¢"]=>
|
||||
string(6) "¢"
|
||||
["£"]=>
|
||||
string(7) "£"
|
||||
string(7) "Σ"
|
||||
["¤"]=>
|
||||
string(8) "¤"
|
||||
string(5) "Τ"
|
||||
["¥"]=>
|
||||
string(5) "¥"
|
||||
string(6) "⊥"
|
||||
["¦"]=>
|
||||
string(8) "¦"
|
||||
string(5) "Φ"
|
||||
["§"]=>
|
||||
string(6) "§"
|
||||
string(5) "Χ"
|
||||
["¨"]=>
|
||||
string(5) "¨"
|
||||
string(5) "Ψ"
|
||||
["©"]=>
|
||||
string(6) "©"
|
||||
string(7) "Ω"
|
||||
["ª"]=>
|
||||
string(6) "ª"
|
||||
["«"]=>
|
||||
string(7) "«"
|
||||
["¬"]=>
|
||||
string(5) "¬"
|
||||
string(6) "€"
|
||||
[""]=>
|
||||
string(5) "­"
|
||||
["®"]=>
|
||||
@@ -89,57 +89,57 @@ array(100) {
|
||||
["°"]=>
|
||||
string(5) "°"
|
||||
["±"]=>
|
||||
string(8) "±"
|
||||
string(7) "α"
|
||||
["²"]=>
|
||||
string(6) "²"
|
||||
string(6) "β"
|
||||
["³"]=>
|
||||
string(6) "³"
|
||||
string(7) "γ"
|
||||
["´"]=>
|
||||
string(7) "´"
|
||||
string(7) "δ"
|
||||
["µ"]=>
|
||||
string(7) "µ"
|
||||
string(7) "↵"
|
||||
["¶"]=>
|
||||
string(6) "¶"
|
||||
string(6) "ζ"
|
||||
["·"]=>
|
||||
string(8) "·"
|
||||
string(5) "η"
|
||||
["¸"]=>
|
||||
string(7) "¸"
|
||||
string(7) "θ"
|
||||
["¹"]=>
|
||||
string(6) "¹"
|
||||
string(6) "ι"
|
||||
["º"]=>
|
||||
string(6) "º"
|
||||
string(7) "κ"
|
||||
["»"]=>
|
||||
string(7) "»"
|
||||
string(8) "λ"
|
||||
["¼"]=>
|
||||
string(8) "¼"
|
||||
string(4) "μ"
|
||||
["½"]=>
|
||||
string(8) "½"
|
||||
string(4) "ν"
|
||||
["¾"]=>
|
||||
string(8) "¾"
|
||||
string(4) "ξ"
|
||||
["¿"]=>
|
||||
string(8) "¿"
|
||||
string(9) "ο"
|
||||
["À"]=>
|
||||
string(8) "À"
|
||||
string(4) "π"
|
||||
["Á"]=>
|
||||
string(8) "Á"
|
||||
string(5) "ρ"
|
||||
["Â"]=>
|
||||
string(7) "Â"
|
||||
string(8) "ς"
|
||||
["Ã"]=>
|
||||
string(8) "Ã"
|
||||
string(7) "σ"
|
||||
["Ä"]=>
|
||||
string(6) "Ä"
|
||||
string(5) "τ"
|
||||
["Å"]=>
|
||||
string(7) "Å"
|
||||
string(6) "⋅"
|
||||
["Æ"]=>
|
||||
string(7) "Æ"
|
||||
string(5) "φ"
|
||||
["Ç"]=>
|
||||
string(8) "Ç"
|
||||
string(5) "χ"
|
||||
["È"]=>
|
||||
string(8) "È"
|
||||
string(5) "ψ"
|
||||
["É"]=>
|
||||
string(8) "É"
|
||||
string(7) "ω"
|
||||
["Ê"]=>
|
||||
string(7) "Ê"
|
||||
string(5) "◊"
|
||||
["Ë"]=>
|
||||
string(6) "Ë"
|
||||
["Ì"]=>
|
||||
@@ -151,19 +151,19 @@ array(100) {
|
||||
["Ï"]=>
|
||||
string(6) "Ï"
|
||||
["Ð"]=>
|
||||
string(5) "Ð"
|
||||
string(6) "⇐"
|
||||
["Ñ"]=>
|
||||
string(8) "Ñ"
|
||||
string(6) "⇑"
|
||||
["Ò"]=>
|
||||
string(8) "Ò"
|
||||
string(6) "⇒"
|
||||
["Ó"]=>
|
||||
string(8) "Ó"
|
||||
string(6) "⇓"
|
||||
["Ô"]=>
|
||||
string(7) "Ô"
|
||||
string(6) "⇔"
|
||||
["Õ"]=>
|
||||
string(8) "Õ"
|
||||
["Ö"]=>
|
||||
string(6) "Ö"
|
||||
string(5) "ϖ"
|
||||
["×"]=>
|
||||
string(7) "×"
|
||||
["Ø"]=>
|
||||
@@ -175,7 +175,7 @@ array(100) {
|
||||
["Û"]=>
|
||||
string(7) "Û"
|
||||
["Ü"]=>
|
||||
string(6) "Ü"
|
||||
string(7) "˜"
|
||||
["Ý"]=>
|
||||
string(8) "Ý"
|
||||
["Þ"]=>
|
||||
@@ -246,14 +246,157 @@ array(100) {
|
||||
string(7) "þ"
|
||||
["ÿ"]=>
|
||||
string(6) "ÿ"
|
||||
["R"]=>
|
||||
string(7) "Œ"
|
||||
["S"]=>
|
||||
string(7) "œ"
|
||||
["`"]=>
|
||||
string(8) "♠"
|
||||
["a"]=>
|
||||
string(7) "≡"
|
||||
["x"]=>
|
||||
string(6) "Ÿ"
|
||||
["’"]=>
|
||||
string(6) "→"
|
||||
["‘"]=>
|
||||
string(6) "↑"
|
||||
["“"]=>
|
||||
string(6) "↓"
|
||||
["”"]=>
|
||||
string(6) "↔"
|
||||
["•"]=>
|
||||
string(7) "⊕"
|
||||
["–"]=>
|
||||
string(6) "Ζ"
|
||||
["—"]=>
|
||||
string(8) "⊗"
|
||||
["˜"]=>
|
||||
string(7) "Θ"
|
||||
["™"]=>
|
||||
string(6) "Ι"
|
||||
["š"]=>
|
||||
string(7) "Κ"
|
||||
["›"]=>
|
||||
string(8) "Λ"
|
||||
["œ"]=>
|
||||
string(4) "Μ"
|
||||
["<22>"]=>
|
||||
string(4) "Ν"
|
||||
["ž"]=>
|
||||
string(4) "Ξ"
|
||||
["Ÿ"]=>
|
||||
string(9) "Ο"
|
||||
[""]=>
|
||||
string(6) "∂"
|
||||
[""]=>
|
||||
string(7) "∃"
|
||||
[" "]=>
|
||||
string(7) "⌉"
|
||||
[""]=>
|
||||
string(6) "‌"
|
||||
["
|
||||
"]=>
|
||||
string(5) "‍"
|
||||
[""]=>
|
||||
string(5) "‎"
|
||||
[""]=>
|
||||
string(6) "∏"
|
||||
[""]=>
|
||||
string(7) "–"
|
||||
[""]=>
|
||||
string(7) "—"
|
||||
[""]=>
|
||||
string(8) "℘"
|
||||
[""]=>
|
||||
string(7) "’"
|
||||
[""]=>
|
||||
string(7) "√"
|
||||
[""]=>
|
||||
string(6) "ℜ"
|
||||
[""]=>
|
||||
string(6) "∝"
|
||||
[""]=>
|
||||
string(7) "∞"
|
||||
[" "]=>
|
||||
string(5) "∠"
|
||||
["!"]=>
|
||||
string(8) "‡"
|
||||
["""]=>
|
||||
["<"]=>
|
||||
string(4) "<"
|
||||
[">"]=>
|
||||
string(4) ">"
|
||||
string(6) """
|
||||
["&"]=>
|
||||
string(5) "&"
|
||||
[0]=>
|
||||
string(8) "‰"
|
||||
[2]=>
|
||||
string(7) "′"
|
||||
[3]=>
|
||||
string(7) "″"
|
||||
[9]=>
|
||||
string(8) "‹"
|
||||
[":"]=>
|
||||
string(8) "›"
|
||||
[">"]=>
|
||||
string(4) ">"
|
||||
["D"]=>
|
||||
string(7) "⁄"
|
||||
[""]=>
|
||||
string(5) "∑"
|
||||
[5]=>
|
||||
string(9) "ℵ"
|
||||
["<22>"]=>
|
||||
string(6) "←"
|
||||
[""]=>
|
||||
string(8) "∀"
|
||||
[""]=>
|
||||
string(7) "∅"
|
||||
[""]=>
|
||||
string(7) "∇"
|
||||
[""]=>
|
||||
string(7) "⌈"
|
||||
[""]=>
|
||||
string(8) "⌋"
|
||||
[""]=>
|
||||
string(7) "−"
|
||||
[""]=>
|
||||
string(8) "∗"
|
||||
["'"]=>
|
||||
string(5) "∧"
|
||||
["("]=>
|
||||
string(4) "∨"
|
||||
[")"]=>
|
||||
string(6) "⟨"
|
||||
["*"]=>
|
||||
string(6) "⟩"
|
||||
["+"]=>
|
||||
string(5) "∫"
|
||||
[4]=>
|
||||
string(8) "∴"
|
||||
["<"]=>
|
||||
string(4) "<"
|
||||
["E"]=>
|
||||
string(6) "≅"
|
||||
["H"]=>
|
||||
string(7) "≈"
|
||||
["d"]=>
|
||||
string(4) "≤"
|
||||
["e"]=>
|
||||
string(8) "♥"
|
||||
["‚"]=>
|
||||
string(5) "⊂"
|
||||
["ƒ"]=>
|
||||
string(5) "⊃"
|
||||
["„"]=>
|
||||
string(6) "⊄"
|
||||
["†"]=>
|
||||
string(6) "⊆"
|
||||
["‡"]=>
|
||||
string(6) "⊇"
|
||||
["
|
||||
"]=>
|
||||
string(8) "⌊"
|
||||
["c"]=>
|
||||
string(7) "♣"
|
||||
["f"]=>
|
||||
string(7) "♦"
|
||||
}
|
||||
-- with table = HTML_SPECIALCHARS --
|
||||
|
||||
@@ -61,33 +61,33 @@ array(4) {
|
||||
string(5) "&"
|
||||
}
|
||||
-- with table = HTML_ENTITIES & quote_style = ENT_COMPAT --
|
||||
array(100) {
|
||||
array(171) {
|
||||
[" "]=>
|
||||
string(6) " "
|
||||
string(4) "Π"
|
||||
["¡"]=>
|
||||
string(7) "¡"
|
||||
string(5) "Ρ"
|
||||
["¢"]=>
|
||||
string(6) "¢"
|
||||
["£"]=>
|
||||
string(7) "£"
|
||||
string(7) "Σ"
|
||||
["¤"]=>
|
||||
string(8) "¤"
|
||||
string(5) "Τ"
|
||||
["¥"]=>
|
||||
string(5) "¥"
|
||||
string(6) "⊥"
|
||||
["¦"]=>
|
||||
string(8) "¦"
|
||||
string(5) "Φ"
|
||||
["§"]=>
|
||||
string(6) "§"
|
||||
string(5) "Χ"
|
||||
["¨"]=>
|
||||
string(5) "¨"
|
||||
string(5) "Ψ"
|
||||
["©"]=>
|
||||
string(6) "©"
|
||||
string(7) "Ω"
|
||||
["ª"]=>
|
||||
string(6) "ª"
|
||||
["«"]=>
|
||||
string(7) "«"
|
||||
["¬"]=>
|
||||
string(5) "¬"
|
||||
string(6) "€"
|
||||
[""]=>
|
||||
string(5) "­"
|
||||
["®"]=>
|
||||
@@ -97,57 +97,57 @@ array(100) {
|
||||
["°"]=>
|
||||
string(5) "°"
|
||||
["±"]=>
|
||||
string(8) "±"
|
||||
string(7) "α"
|
||||
["²"]=>
|
||||
string(6) "²"
|
||||
string(6) "β"
|
||||
["³"]=>
|
||||
string(6) "³"
|
||||
string(7) "γ"
|
||||
["´"]=>
|
||||
string(7) "´"
|
||||
string(7) "δ"
|
||||
["µ"]=>
|
||||
string(7) "µ"
|
||||
string(7) "↵"
|
||||
["¶"]=>
|
||||
string(6) "¶"
|
||||
string(6) "ζ"
|
||||
["·"]=>
|
||||
string(8) "·"
|
||||
string(5) "η"
|
||||
["¸"]=>
|
||||
string(7) "¸"
|
||||
string(7) "θ"
|
||||
["¹"]=>
|
||||
string(6) "¹"
|
||||
string(6) "ι"
|
||||
["º"]=>
|
||||
string(6) "º"
|
||||
string(7) "κ"
|
||||
["»"]=>
|
||||
string(7) "»"
|
||||
string(8) "λ"
|
||||
["¼"]=>
|
||||
string(8) "¼"
|
||||
string(4) "μ"
|
||||
["½"]=>
|
||||
string(8) "½"
|
||||
string(4) "ν"
|
||||
["¾"]=>
|
||||
string(8) "¾"
|
||||
string(4) "ξ"
|
||||
["¿"]=>
|
||||
string(8) "¿"
|
||||
string(9) "ο"
|
||||
["À"]=>
|
||||
string(8) "À"
|
||||
string(4) "π"
|
||||
["Á"]=>
|
||||
string(8) "Á"
|
||||
string(5) "ρ"
|
||||
["Â"]=>
|
||||
string(7) "Â"
|
||||
string(8) "ς"
|
||||
["Ã"]=>
|
||||
string(8) "Ã"
|
||||
string(7) "σ"
|
||||
["Ä"]=>
|
||||
string(6) "Ä"
|
||||
string(5) "τ"
|
||||
["Å"]=>
|
||||
string(7) "Å"
|
||||
string(6) "⋅"
|
||||
["Æ"]=>
|
||||
string(7) "Æ"
|
||||
string(5) "φ"
|
||||
["Ç"]=>
|
||||
string(8) "Ç"
|
||||
string(5) "χ"
|
||||
["È"]=>
|
||||
string(8) "È"
|
||||
string(5) "ψ"
|
||||
["É"]=>
|
||||
string(8) "É"
|
||||
string(7) "ω"
|
||||
["Ê"]=>
|
||||
string(7) "Ê"
|
||||
string(5) "◊"
|
||||
["Ë"]=>
|
||||
string(6) "Ë"
|
||||
["Ì"]=>
|
||||
@@ -159,19 +159,19 @@ array(100) {
|
||||
["Ï"]=>
|
||||
string(6) "Ï"
|
||||
["Ð"]=>
|
||||
string(5) "Ð"
|
||||
string(6) "⇐"
|
||||
["Ñ"]=>
|
||||
string(8) "Ñ"
|
||||
string(6) "⇑"
|
||||
["Ò"]=>
|
||||
string(8) "Ò"
|
||||
string(6) "⇒"
|
||||
["Ó"]=>
|
||||
string(8) "Ó"
|
||||
string(6) "⇓"
|
||||
["Ô"]=>
|
||||
string(7) "Ô"
|
||||
string(6) "⇔"
|
||||
["Õ"]=>
|
||||
string(8) "Õ"
|
||||
["Ö"]=>
|
||||
string(6) "Ö"
|
||||
string(5) "ϖ"
|
||||
["×"]=>
|
||||
string(7) "×"
|
||||
["Ø"]=>
|
||||
@@ -183,7 +183,7 @@ array(100) {
|
||||
["Û"]=>
|
||||
string(7) "Û"
|
||||
["Ü"]=>
|
||||
string(6) "Ü"
|
||||
string(7) "˜"
|
||||
["Ý"]=>
|
||||
string(8) "Ý"
|
||||
["Þ"]=>
|
||||
@@ -254,43 +254,186 @@ array(100) {
|
||||
string(7) "þ"
|
||||
["ÿ"]=>
|
||||
string(6) "ÿ"
|
||||
["R"]=>
|
||||
string(7) "Œ"
|
||||
["S"]=>
|
||||
string(7) "œ"
|
||||
["`"]=>
|
||||
string(8) "♠"
|
||||
["a"]=>
|
||||
string(7) "≡"
|
||||
["x"]=>
|
||||
string(6) "Ÿ"
|
||||
["’"]=>
|
||||
string(6) "→"
|
||||
["‘"]=>
|
||||
string(6) "↑"
|
||||
["“"]=>
|
||||
string(6) "↓"
|
||||
["”"]=>
|
||||
string(6) "↔"
|
||||
["•"]=>
|
||||
string(7) "⊕"
|
||||
["–"]=>
|
||||
string(6) "Ζ"
|
||||
["—"]=>
|
||||
string(8) "⊗"
|
||||
["˜"]=>
|
||||
string(7) "Θ"
|
||||
["™"]=>
|
||||
string(6) "Ι"
|
||||
["š"]=>
|
||||
string(7) "Κ"
|
||||
["›"]=>
|
||||
string(8) "Λ"
|
||||
["œ"]=>
|
||||
string(4) "Μ"
|
||||
["<22>"]=>
|
||||
string(4) "Ν"
|
||||
["ž"]=>
|
||||
string(4) "Ξ"
|
||||
["Ÿ"]=>
|
||||
string(9) "Ο"
|
||||
[""]=>
|
||||
string(6) "∂"
|
||||
[""]=>
|
||||
string(7) "∃"
|
||||
[" "]=>
|
||||
string(7) "⌉"
|
||||
[""]=>
|
||||
string(6) "‌"
|
||||
["
|
||||
"]=>
|
||||
string(5) "‍"
|
||||
[""]=>
|
||||
string(5) "‎"
|
||||
[""]=>
|
||||
string(6) "∏"
|
||||
[""]=>
|
||||
string(7) "–"
|
||||
[""]=>
|
||||
string(7) "—"
|
||||
[""]=>
|
||||
string(8) "℘"
|
||||
[""]=>
|
||||
string(7) "’"
|
||||
[""]=>
|
||||
string(7) "√"
|
||||
[""]=>
|
||||
string(6) "ℜ"
|
||||
[""]=>
|
||||
string(6) "∝"
|
||||
[""]=>
|
||||
string(7) "∞"
|
||||
[" "]=>
|
||||
string(5) "∠"
|
||||
["!"]=>
|
||||
string(8) "‡"
|
||||
["""]=>
|
||||
["<"]=>
|
||||
string(4) "<"
|
||||
[">"]=>
|
||||
string(4) ">"
|
||||
string(6) """
|
||||
["&"]=>
|
||||
string(5) "&"
|
||||
[0]=>
|
||||
string(8) "‰"
|
||||
[2]=>
|
||||
string(7) "′"
|
||||
[3]=>
|
||||
string(7) "″"
|
||||
[9]=>
|
||||
string(8) "‹"
|
||||
[":"]=>
|
||||
string(8) "›"
|
||||
[">"]=>
|
||||
string(4) ">"
|
||||
["D"]=>
|
||||
string(7) "⁄"
|
||||
[""]=>
|
||||
string(5) "∑"
|
||||
[5]=>
|
||||
string(9) "ℵ"
|
||||
["<22>"]=>
|
||||
string(6) "←"
|
||||
[""]=>
|
||||
string(8) "∀"
|
||||
[""]=>
|
||||
string(7) "∅"
|
||||
[""]=>
|
||||
string(7) "∇"
|
||||
[""]=>
|
||||
string(7) "⌈"
|
||||
[""]=>
|
||||
string(8) "⌋"
|
||||
[""]=>
|
||||
string(7) "−"
|
||||
[""]=>
|
||||
string(8) "∗"
|
||||
["'"]=>
|
||||
string(5) "∧"
|
||||
["("]=>
|
||||
string(4) "∨"
|
||||
[")"]=>
|
||||
string(6) "⟨"
|
||||
["*"]=>
|
||||
string(6) "⟩"
|
||||
["+"]=>
|
||||
string(5) "∫"
|
||||
[4]=>
|
||||
string(8) "∴"
|
||||
["<"]=>
|
||||
string(4) "<"
|
||||
["E"]=>
|
||||
string(6) "≅"
|
||||
["H"]=>
|
||||
string(7) "≈"
|
||||
["d"]=>
|
||||
string(4) "≤"
|
||||
["e"]=>
|
||||
string(8) "♥"
|
||||
["‚"]=>
|
||||
string(5) "⊂"
|
||||
["ƒ"]=>
|
||||
string(5) "⊃"
|
||||
["„"]=>
|
||||
string(6) "⊄"
|
||||
["†"]=>
|
||||
string(6) "⊆"
|
||||
["‡"]=>
|
||||
string(6) "⊇"
|
||||
["
|
||||
"]=>
|
||||
string(8) "⌊"
|
||||
["c"]=>
|
||||
string(7) "♣"
|
||||
["f"]=>
|
||||
string(7) "♦"
|
||||
}
|
||||
array(101) {
|
||||
-- with table = HTML_ENTITIES & quote_style = ENT_QUOTES --
|
||||
array(171) {
|
||||
string(6) " "
|
||||
[" "]=>
|
||||
string(4) "Π"
|
||||
string(7) "¡"
|
||||
["¡"]=>
|
||||
string(5) "Ρ"
|
||||
["¢"]=>
|
||||
string(6) "¢"
|
||||
string(7) "£"
|
||||
["£"]=>
|
||||
string(7) "Σ"
|
||||
string(8) "¤"
|
||||
["¤"]=>
|
||||
string(5) "Τ"
|
||||
string(5) "¥"
|
||||
["¥"]=>
|
||||
string(6) "⊥"
|
||||
string(8) "¦"
|
||||
["¦"]=>
|
||||
string(5) "Φ"
|
||||
string(6) "§"
|
||||
["§"]=>
|
||||
string(5) "Χ"
|
||||
string(5) "¨"
|
||||
["¨"]=>
|
||||
string(5) "Ψ"
|
||||
string(6) "©"
|
||||
["©"]=>
|
||||
string(7) "Ω"
|
||||
["ª"]=>
|
||||
string(6) "ª"
|
||||
["«"]=>
|
||||
string(7) "«"
|
||||
string(5) "¬"
|
||||
["¬"]=>
|
||||
string(6) "€"
|
||||
[""]=>
|
||||
string(5) "­"
|
||||
@@ -300,57 +443,57 @@ array(101) {
|
||||
string(6) "¯"
|
||||
["°"]=>
|
||||
string(5) "°"
|
||||
string(8) "±"
|
||||
["±"]=>
|
||||
string(7) "α"
|
||||
string(6) "²"
|
||||
["²"]=>
|
||||
string(6) "β"
|
||||
string(6) "³"
|
||||
["³"]=>
|
||||
string(7) "γ"
|
||||
string(7) "´"
|
||||
["´"]=>
|
||||
string(7) "δ"
|
||||
string(7) "µ"
|
||||
["µ"]=>
|
||||
string(7) "↵"
|
||||
string(6) "¶"
|
||||
["¶"]=>
|
||||
string(6) "ζ"
|
||||
string(8) "·"
|
||||
["·"]=>
|
||||
string(5) "η"
|
||||
string(7) "¸"
|
||||
["¸"]=>
|
||||
string(7) "θ"
|
||||
string(6) "¹"
|
||||
["¹"]=>
|
||||
string(6) "ι"
|
||||
string(6) "º"
|
||||
["º"]=>
|
||||
string(7) "κ"
|
||||
string(7) "»"
|
||||
["»"]=>
|
||||
string(8) "λ"
|
||||
string(8) "¼"
|
||||
["¼"]=>
|
||||
string(4) "μ"
|
||||
string(8) "½"
|
||||
["½"]=>
|
||||
string(4) "ν"
|
||||
string(8) "¾"
|
||||
["¾"]=>
|
||||
string(4) "ξ"
|
||||
string(8) "¿"
|
||||
["¿"]=>
|
||||
string(9) "ο"
|
||||
string(8) "À"
|
||||
["À"]=>
|
||||
string(4) "π"
|
||||
string(8) "Á"
|
||||
["Á"]=>
|
||||
string(5) "ρ"
|
||||
string(7) "Â"
|
||||
["Â"]=>
|
||||
string(8) "ς"
|
||||
string(8) "Ã"
|
||||
["Ã"]=>
|
||||
string(7) "σ"
|
||||
string(6) "Ä"
|
||||
["Ä"]=>
|
||||
string(5) "τ"
|
||||
string(7) "Å"
|
||||
["Å"]=>
|
||||
string(6) "⋅"
|
||||
string(7) "Æ"
|
||||
["Æ"]=>
|
||||
string(5) "φ"
|
||||
string(8) "Ç"
|
||||
["Ç"]=>
|
||||
string(5) "χ"
|
||||
string(8) "È"
|
||||
["È"]=>
|
||||
string(5) "ψ"
|
||||
string(8) "É"
|
||||
["É"]=>
|
||||
string(7) "ω"
|
||||
string(7) "Ê"
|
||||
["Ê"]=>
|
||||
string(5) "◊"
|
||||
["Ë"]=>
|
||||
string(6) "Ë"
|
||||
@@ -362,19 +505,19 @@ array(101) {
|
||||
string(7) "Î"
|
||||
["Ï"]=>
|
||||
string(6) "Ï"
|
||||
string(5) "Ð"
|
||||
["Ð"]=>
|
||||
string(6) "⇐"
|
||||
string(8) "Ñ"
|
||||
["Ñ"]=>
|
||||
string(6) "⇑"
|
||||
string(8) "Ò"
|
||||
["Ò"]=>
|
||||
string(6) "⇒"
|
||||
string(8) "Ó"
|
||||
["Ó"]=>
|
||||
string(6) "⇓"
|
||||
string(7) "Ô"
|
||||
["Ô"]=>
|
||||
string(6) "⇔"
|
||||
["Õ"]=>
|
||||
string(8) "Õ"
|
||||
string(6) "Ö"
|
||||
["Ö"]=>
|
||||
string(5) "ϖ"
|
||||
["×"]=>
|
||||
string(7) "×"
|
||||
@@ -386,7 +529,7 @@ array(101) {
|
||||
string(8) "Ú"
|
||||
["Û"]=>
|
||||
string(7) "Û"
|
||||
string(6) "Ü"
|
||||
["Ü"]=>
|
||||
string(7) "˜"
|
||||
["Ý"]=>
|
||||
string(8) "Ý"
|
||||
@@ -457,45 +600,186 @@ array(101) {
|
||||
["þ"]=>
|
||||
string(7) "þ"
|
||||
["ÿ"]=>
|
||||
string(6) "ÿ"
|
||||
["R"]=>
|
||||
string(7) "Œ"
|
||||
["S"]=>
|
||||
string(7) "œ"
|
||||
["`"]=>
|
||||
string(8) "♠"
|
||||
["a"]=>
|
||||
string(7) "≡"
|
||||
["x"]=>
|
||||
string(6) "Ÿ"
|
||||
["’"]=>
|
||||
string(6) "→"
|
||||
["‘"]=>
|
||||
string(6) "↑"
|
||||
["“"]=>
|
||||
string(6) "↓"
|
||||
["”"]=>
|
||||
string(6) "↔"
|
||||
["•"]=>
|
||||
string(7) "⊕"
|
||||
["–"]=>
|
||||
string(6) "Ζ"
|
||||
["—"]=>
|
||||
string(8) "⊗"
|
||||
["˜"]=>
|
||||
string(7) "Θ"
|
||||
["™"]=>
|
||||
string(6) "Ι"
|
||||
["š"]=>
|
||||
string(7) "Κ"
|
||||
["›"]=>
|
||||
string(8) "Λ"
|
||||
["œ"]=>
|
||||
string(4) "Μ"
|
||||
["<22>"]=>
|
||||
string(4) "Ν"
|
||||
["ž"]=>
|
||||
string(4) "Ξ"
|
||||
["Ÿ"]=>
|
||||
string(9) "Ο"
|
||||
[""]=>
|
||||
string(6) "∂"
|
||||
[""]=>
|
||||
string(7) "∃"
|
||||
[" "]=>
|
||||
string(7) "⌉"
|
||||
[""]=>
|
||||
string(6) "‌"
|
||||
["
|
||||
"]=>
|
||||
string(5) "‍"
|
||||
[""]=>
|
||||
string(5) "‎"
|
||||
[""]=>
|
||||
string(6) "∏"
|
||||
[""]=>
|
||||
string(7) "–"
|
||||
[""]=>
|
||||
string(7) "—"
|
||||
[""]=>
|
||||
string(8) "℘"
|
||||
[""]=>
|
||||
string(7) "’"
|
||||
[""]=>
|
||||
string(7) "√"
|
||||
[""]=>
|
||||
string(6) "ℜ"
|
||||
[""]=>
|
||||
string(6) "∝"
|
||||
[""]=>
|
||||
string(7) "∞"
|
||||
[" "]=>
|
||||
string(5) "∠"
|
||||
["!"]=>
|
||||
string(8) "‡"
|
||||
["'"]=>
|
||||
string(5) "'"
|
||||
["<"]=>
|
||||
string(4) "<"
|
||||
[">"]=>
|
||||
string(4) ">"
|
||||
["""]=>
|
||||
string(6) """
|
||||
["&"]=>
|
||||
string(5) "&"
|
||||
[0]=>
|
||||
string(8) "‰"
|
||||
[2]=>
|
||||
string(7) "′"
|
||||
[3]=>
|
||||
string(7) "″"
|
||||
[9]=>
|
||||
string(8) "‹"
|
||||
[":"]=>
|
||||
string(8) "›"
|
||||
[">"]=>
|
||||
string(4) ">"
|
||||
["D"]=>
|
||||
string(7) "⁄"
|
||||
[""]=>
|
||||
string(5) "∑"
|
||||
[5]=>
|
||||
string(9) "ℵ"
|
||||
["<22>"]=>
|
||||
string(6) "←"
|
||||
[""]=>
|
||||
string(8) "∀"
|
||||
[""]=>
|
||||
string(7) "∅"
|
||||
[""]=>
|
||||
string(7) "∇"
|
||||
[""]=>
|
||||
string(7) "⌈"
|
||||
[""]=>
|
||||
string(8) "⌋"
|
||||
[""]=>
|
||||
string(7) "−"
|
||||
[""]=>
|
||||
string(8) "∗"
|
||||
["'"]=>
|
||||
string(5) "'"
|
||||
["("]=>
|
||||
string(4) "∨"
|
||||
[")"]=>
|
||||
string(6) "⟨"
|
||||
["*"]=>
|
||||
string(6) "⟩"
|
||||
["+"]=>
|
||||
string(5) "∫"
|
||||
[4]=>
|
||||
string(8) "∴"
|
||||
["<"]=>
|
||||
string(4) "<"
|
||||
["E"]=>
|
||||
string(6) "≅"
|
||||
["H"]=>
|
||||
string(7) "≈"
|
||||
["d"]=>
|
||||
string(4) "≤"
|
||||
["e"]=>
|
||||
string(8) "♥"
|
||||
["‚"]=>
|
||||
string(5) "⊂"
|
||||
["ƒ"]=>
|
||||
string(5) "⊃"
|
||||
["„"]=>
|
||||
string(6) "⊄"
|
||||
["†"]=>
|
||||
string(6) "⊆"
|
||||
["‡"]=>
|
||||
string(6) "⊇"
|
||||
["
|
||||
"]=>
|
||||
string(8) "⌊"
|
||||
["c"]=>
|
||||
string(7) "♣"
|
||||
["f"]=>
|
||||
string(7) "♦"
|
||||
array(99) {
|
||||
}
|
||||
-- with table = HTML_ENTITIES & quote_style = ENT_NOQUOTES --
|
||||
string(6) " "
|
||||
array(171) {
|
||||
[" "]=>
|
||||
string(7) "¡"
|
||||
string(4) "Π"
|
||||
["¡"]=>
|
||||
string(5) "Ρ"
|
||||
["¢"]=>
|
||||
string(7) "£"
|
||||
string(6) "¢"
|
||||
["£"]=>
|
||||
string(8) "¤"
|
||||
string(7) "Σ"
|
||||
["¤"]=>
|
||||
string(5) "¥"
|
||||
string(5) "Τ"
|
||||
["¥"]=>
|
||||
string(8) "¦"
|
||||
string(6) "⊥"
|
||||
["¦"]=>
|
||||
string(6) "§"
|
||||
string(5) "Φ"
|
||||
["§"]=>
|
||||
string(5) "¨"
|
||||
string(5) "Χ"
|
||||
["¨"]=>
|
||||
string(6) "©"
|
||||
string(5) "Ψ"
|
||||
["©"]=>
|
||||
string(7) "Ω"
|
||||
["ª"]=>
|
||||
string(6) "ª"
|
||||
["«"]=>
|
||||
string(5) "¬"
|
||||
string(7) "«"
|
||||
["¬"]=>
|
||||
string(6) "€"
|
||||
[""]=>
|
||||
@@ -505,57 +789,57 @@ array(99) {
|
||||
["¯"]=>
|
||||
string(6) "¯"
|
||||
["°"]=>
|
||||
string(8) "±"
|
||||
string(5) "°"
|
||||
["±"]=>
|
||||
string(6) "²"
|
||||
string(7) "α"
|
||||
["²"]=>
|
||||
string(6) "³"
|
||||
string(6) "β"
|
||||
["³"]=>
|
||||
string(7) "´"
|
||||
string(7) "γ"
|
||||
["´"]=>
|
||||
string(7) "µ"
|
||||
string(7) "δ"
|
||||
["µ"]=>
|
||||
string(6) "¶"
|
||||
string(7) "↵"
|
||||
["¶"]=>
|
||||
string(8) "·"
|
||||
string(6) "ζ"
|
||||
["·"]=>
|
||||
string(7) "¸"
|
||||
string(5) "η"
|
||||
["¸"]=>
|
||||
string(6) "¹"
|
||||
string(7) "θ"
|
||||
["¹"]=>
|
||||
string(6) "º"
|
||||
string(6) "ι"
|
||||
["º"]=>
|
||||
string(7) "»"
|
||||
string(7) "κ"
|
||||
["»"]=>
|
||||
string(8) "¼"
|
||||
string(8) "λ"
|
||||
["¼"]=>
|
||||
string(8) "½"
|
||||
string(4) "μ"
|
||||
["½"]=>
|
||||
string(8) "¾"
|
||||
string(4) "ν"
|
||||
["¾"]=>
|
||||
string(8) "¿"
|
||||
string(4) "ξ"
|
||||
["¿"]=>
|
||||
string(8) "À"
|
||||
string(9) "ο"
|
||||
["À"]=>
|
||||
string(8) "Á"
|
||||
string(4) "π"
|
||||
["Á"]=>
|
||||
string(7) "Â"
|
||||
string(5) "ρ"
|
||||
["Â"]=>
|
||||
string(8) "Ã"
|
||||
string(8) "ς"
|
||||
["Ã"]=>
|
||||
string(6) "Ä"
|
||||
string(7) "σ"
|
||||
["Ä"]=>
|
||||
string(7) "Å"
|
||||
string(5) "τ"
|
||||
["Å"]=>
|
||||
string(7) "Æ"
|
||||
string(6) "⋅"
|
||||
["Æ"]=>
|
||||
string(8) "Ç"
|
||||
string(5) "φ"
|
||||
["Ç"]=>
|
||||
string(8) "È"
|
||||
string(5) "χ"
|
||||
["È"]=>
|
||||
string(8) "É"
|
||||
string(5) "ψ"
|
||||
["É"]=>
|
||||
string(7) "Ê"
|
||||
string(7) "ω"
|
||||
["Ê"]=>
|
||||
string(5) "◊"
|
||||
["Ë"]=>
|
||||
@@ -567,19 +851,19 @@ array(99) {
|
||||
["Î"]=>
|
||||
string(7) "Î"
|
||||
["Ï"]=>
|
||||
string(5) "Ð"
|
||||
string(6) "Ï"
|
||||
["Ð"]=>
|
||||
string(8) "Ñ"
|
||||
string(6) "⇐"
|
||||
["Ñ"]=>
|
||||
string(8) "Ò"
|
||||
string(6) "⇑"
|
||||
["Ò"]=>
|
||||
string(8) "Ó"
|
||||
string(6) "⇒"
|
||||
["Ó"]=>
|
||||
string(7) "Ô"
|
||||
string(6) "⇓"
|
||||
["Ô"]=>
|
||||
string(6) "⇔"
|
||||
["Õ"]=>
|
||||
string(6) "Ö"
|
||||
string(8) "Õ"
|
||||
["Ö"]=>
|
||||
string(5) "ϖ"
|
||||
["×"]=>
|
||||
@@ -591,7 +875,7 @@ array(99) {
|
||||
["Ú"]=>
|
||||
string(8) "Ú"
|
||||
["Û"]=>
|
||||
string(6) "Ü"
|
||||
string(7) "Û"
|
||||
["Ü"]=>
|
||||
string(7) "˜"
|
||||
["Ý"]=>
|
||||
@@ -662,11 +946,156 @@ array(99) {
|
||||
string(8) "ý"
|
||||
["þ"]=>
|
||||
string(7) "þ"
|
||||
["<"]=>
|
||||
string(4) "<"
|
||||
[">"]=>
|
||||
string(4) ">"
|
||||
["ÿ"]=>
|
||||
string(6) "ÿ"
|
||||
["R"]=>
|
||||
string(7) "Œ"
|
||||
["S"]=>
|
||||
string(7) "œ"
|
||||
["`"]=>
|
||||
string(8) "♠"
|
||||
["a"]=>
|
||||
string(7) "≡"
|
||||
["x"]=>
|
||||
string(6) "Ÿ"
|
||||
["’"]=>
|
||||
string(6) "→"
|
||||
["‘"]=>
|
||||
string(6) "↑"
|
||||
["“"]=>
|
||||
string(6) "↓"
|
||||
["”"]=>
|
||||
string(6) "↔"
|
||||
["•"]=>
|
||||
string(7) "⊕"
|
||||
["–"]=>
|
||||
string(6) "Ζ"
|
||||
["—"]=>
|
||||
string(8) "⊗"
|
||||
["˜"]=>
|
||||
string(7) "Θ"
|
||||
["™"]=>
|
||||
string(6) "Ι"
|
||||
["š"]=>
|
||||
string(7) "Κ"
|
||||
["›"]=>
|
||||
string(8) "Λ"
|
||||
["œ"]=>
|
||||
string(4) "Μ"
|
||||
["<22>"]=>
|
||||
string(4) "Ν"
|
||||
["ž"]=>
|
||||
string(4) "Ξ"
|
||||
["Ÿ"]=>
|
||||
string(9) "Ο"
|
||||
[""]=>
|
||||
string(6) "∂"
|
||||
[""]=>
|
||||
string(7) "∃"
|
||||
[" "]=>
|
||||
string(7) "⌉"
|
||||
[""]=>
|
||||
string(6) "‌"
|
||||
["
|
||||
"]=>
|
||||
string(5) "‍"
|
||||
[""]=>
|
||||
string(5) "‎"
|
||||
[""]=>
|
||||
string(6) "∏"
|
||||
[""]=>
|
||||
string(7) "–"
|
||||
[""]=>
|
||||
string(7) "—"
|
||||
[""]=>
|
||||
string(8) "℘"
|
||||
[""]=>
|
||||
string(7) "’"
|
||||
[""]=>
|
||||
string(7) "√"
|
||||
[""]=>
|
||||
string(6) "ℜ"
|
||||
[""]=>
|
||||
string(6) "∝"
|
||||
[""]=>
|
||||
string(7) "∞"
|
||||
[" "]=>
|
||||
string(5) "∠"
|
||||
["!"]=>
|
||||
string(8) "‡"
|
||||
["""]=>
|
||||
string(7) "™"
|
||||
["&"]=>
|
||||
string(5) "&"
|
||||
[0]=>
|
||||
string(8) "‰"
|
||||
[2]=>
|
||||
string(7) "′"
|
||||
[3]=>
|
||||
string(7) "″"
|
||||
[9]=>
|
||||
string(8) "‹"
|
||||
[":"]=>
|
||||
string(8) "›"
|
||||
[">"]=>
|
||||
string(4) ">"
|
||||
["D"]=>
|
||||
string(7) "⁄"
|
||||
[""]=>
|
||||
string(5) "∑"
|
||||
[5]=>
|
||||
string(9) "ℵ"
|
||||
["<22>"]=>
|
||||
string(6) "←"
|
||||
[""]=>
|
||||
string(8) "∀"
|
||||
[""]=>
|
||||
string(7) "∅"
|
||||
[""]=>
|
||||
string(7) "∇"
|
||||
[""]=>
|
||||
string(7) "⌈"
|
||||
[""]=>
|
||||
string(8) "⌋"
|
||||
[""]=>
|
||||
string(7) "−"
|
||||
[""]=>
|
||||
string(8) "∗"
|
||||
["'"]=>
|
||||
string(5) "∧"
|
||||
["("]=>
|
||||
string(4) "∨"
|
||||
[")"]=>
|
||||
string(6) "⟨"
|
||||
["*"]=>
|
||||
string(6) "⟩"
|
||||
["+"]=>
|
||||
string(5) "∫"
|
||||
[4]=>
|
||||
string(8) "∴"
|
||||
["<"]=>
|
||||
string(4) "<"
|
||||
["E"]=>
|
||||
string(6) "≅"
|
||||
["H"]=>
|
||||
string(7) "≈"
|
||||
["d"]=>
|
||||
string(4) "≤"
|
||||
["e"]=>
|
||||
string(8) "♥"
|
||||
["‚"]=>
|
||||
string(5) "⊂"
|
||||
["ƒ"]=>
|
||||
string(5) "⊃"
|
||||
["„"]=>
|
||||
string(6) "⊄"
|
||||
["†"]=>
|
||||
string(6) "⊆"
|
||||
["‡"]=>
|
||||
string(6) "⊇"
|
||||
["
|
||||
"]=>
|
||||
string(8) "⌊"
|
||||
["c"]=>
|
||||
string(7) "♣"
|
||||
["f"]=>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,16 +1,16 @@
|
||||
--TEST--
|
||||
HTML entities
|
||||
HTML entities of ISO-8859 chars
|
||||
--INI--
|
||||
output_handler=
|
||||
--FILE--
|
||||
<?php
|
||||
setlocale (LC_CTYPE, "C");
|
||||
$sc_encoded = htmlspecialchars ("<>\"&åÄ\n");
|
||||
$sc_encoded = htmlspecialchars ("<>\"&åÄ\n",ENT_COMPAT,"ISO-8859-1");
|
||||
echo $sc_encoded;
|
||||
$ent_encoded = htmlentities ("<>\"&åÄ\n");
|
||||
$ent_encoded = htmlentities ("<>\"&åÄ\n",ENT_COMPAT,"ISO-8859-1");
|
||||
echo $ent_encoded;
|
||||
echo html_entity_decode($sc_encoded);
|
||||
echo html_entity_decode($ent_encoded);
|
||||
echo html_entity_decode($sc_encoded,ENT_COMPAT,"ISO-8859-1");
|
||||
echo html_entity_decode($ent_encoded,ENT_COMPAT,"ISO-8859-1");
|
||||
?>
|
||||
--EXPECT--
|
||||
<>"&åÄ
|
||||
|
||||
@@ -769,7 +769,7 @@ default_mimetype = "text/html"
|
||||
|
||||
; PHP's default character set is set to empty.
|
||||
; http://php.net/default-charset
|
||||
;default_charset = "iso-8859-1"
|
||||
;default_charset = "UTF-8"
|
||||
|
||||
; Always populate the $HTTP_RAW_POST_DATA variable. PHP's default behavior is
|
||||
; to disable this feature.
|
||||
|
||||
@@ -769,7 +769,7 @@ default_mimetype = "text/html"
|
||||
|
||||
; PHP's default character set is set to empty.
|
||||
; http://php.net/default-charset
|
||||
;default_charset = "iso-8859-1"
|
||||
;default_charset = "UTF-8"
|
||||
|
||||
; Always populate the $HTTP_RAW_POST_DATA variable. PHP's default behavior is
|
||||
; to disable this feature.
|
||||
|
||||
Reference in New Issue
Block a user