default_charset.phpt 2.7 KB

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