summaryrefslogtreecommitdiff
path: root/ext/standard/tests/strings/default_charset.phpt
blob: 366513241388d973ea2bc8454eefc5fd1b3887e4 (plain)
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("&pound;", ENT_HTML5)));
var_dump(bin2hex(html_entity_decode("&pound;", 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("&pound;", ENT_HTML5)));
var_dump(bin2hex(html_entity_decode("&pound;", 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("&pound;", ENT_HTML5)));
var_dump(bin2hex(html_entity_decode("&pound;", 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) "&pound;"
string(7) "&pound;"
string(2) "a3"
string(2) "a3"
*** Change internal_encoding to empty ***
string(0) ""
string(6) "cp1252"
string(0) ""
string(0) ""
string(0) ""
string(7) "&pound;"
string(7) "&pound;"
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) "&pound;"
string(7) "&pound;"
string(2) "a3"
string(2) "a3"
Done