1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
|
--TEST--
default_charset and htmlentities/htmlspecialchars/html_entity_decode
--INI--
default_charset=UTF-8
internal_encoding=
input_encoding=
output_encoding=
--FILE--
<?php
echo "*** Default php.ini value ***\n";
var_dump(ini_get('default_charset'),
ini_get('internal_encoding'),
ini_get('input_encoding'),
ini_get('output_encoding')
);
echo "*** Runtime change of default_charset ***\n";
var_dump(ini_set('default_charset', 'cp1252'));
echo "*** Test with updated default_charset ***\n";
var_dump(ini_get('default_charset'),
ini_get('internal_encoding'),
ini_get('input_encoding'),
ini_get('output_encoding')
);
var_dump(htmlentities("\xA3", ENT_HTML5));
var_dump(htmlentities("\xA3", ENT_HTML5, 'cp1252'));
var_dump(bin2hex(html_entity_decode("£", ENT_HTML5)));
var_dump(bin2hex(html_entity_decode("£", ENT_HTML5, 'cp1252')));
// Set internal_encoding to empty and try again
echo "*** Change internal_encoding to empty ***\n";
var_dump(ini_set('internal_encoding', ''));
var_dump(ini_get('default_charset'),
ini_get('internal_encoding'),
ini_get('input_encoding'),
ini_get('output_encoding')
);
var_dump(htmlentities("\xA3", ENT_HTML5));
var_dump(htmlentities("\xA3", ENT_HTML5, 'cp1252'));
var_dump(bin2hex(html_entity_decode("£", ENT_HTML5)));
var_dump(bin2hex(html_entity_decode("£", ENT_HTML5, 'cp1252')));
echo "*** Update input/output_encoding ***\n";
var_dump(ini_set('input_encoding', 'ISO-8859-1'));
var_dump(ini_set('output_encoding', 'ISO-8859-1'));
var_dump(ini_get('default_charset'),
ini_get('internal_encoding'),
ini_get('input_encoding'),
ini_get('output_encoding')
);
// Should not be affected
var_dump(htmlentities("\xA3", ENT_HTML5));
var_dump(htmlentities("\xA3", ENT_HTML5, 'cp1252'));
var_dump(bin2hex(html_entity_decode("£", ENT_HTML5)));
var_dump(bin2hex(html_entity_decode("£", ENT_HTML5, 'cp1252')));
echo "Done\n";
?>
--EXPECT--
*** Default php.ini value ***
string(5) "UTF-8"
string(0) ""
string(0) ""
string(0) ""
*** Runtime change of default_charset ***
string(5) "UTF-8"
*** Test with updated default_charset ***
string(6) "cp1252"
string(0) ""
string(0) ""
string(0) ""
string(7) "£"
string(7) "£"
string(2) "a3"
string(2) "a3"
*** Change internal_encoding to empty ***
string(0) ""
string(6) "cp1252"
string(0) ""
string(0) ""
string(0) ""
string(7) "£"
string(7) "£"
string(2) "a3"
string(2) "a3"
*** Update input/output_encoding ***
string(0) ""
string(0) ""
string(6) "cp1252"
string(0) ""
string(10) "ISO-8859-1"
string(10) "ISO-8859-1"
string(7) "£"
string(7) "£"
string(2) "a3"
string(2) "a3"
Done
|