summaryrefslogtreecommitdiff
path: root/ext/standard/info.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/info.c')
-rw-r--r--ext/standard/info.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/ext/standard/info.c b/ext/standard/info.c
index 814e8893f7..b9134861e6 100644
--- a/ext/standard/info.c
+++ b/ext/standard/info.c
@@ -38,6 +38,11 @@
#include <sys/utsname.h>
#endif
+#if HAVE_MBSTRING
+#include "ext/mbstring/mbstring.h"
+ZEND_EXTERN_MODULE_GLOBALS(mbstring)
+#endif
+
#if HAVE_ICONV
#include "ext/iconv/php_iconv.h"
ZEND_EXTERN_MODULE_GLOBALS(iconv)
@@ -225,6 +230,15 @@ PHPAPI void php_print_info(int flag TSRMLS_DC)
if (SG(default_charset)) {
charset = SG(default_charset);
}
+#if HAVE_MBSTRING
+ if (php_ob_handler_used("mb_output_handler" TSRMLS_CC)) {
+ if (MBSTRG(current_http_output_encoding) == mbfl_no_encoding_pass) {
+ charset = "US-ASCII";
+ } else {
+ charset = mbfl_no2preferred_mime_name(MBSTRG(current_http_output_encoding));
+ }
+ }
+#endif
#if HAVE_ICONV
if (php_ob_handler_used("ob_iconv_handler" TSRMLS_CC)) {
charset = ICONVG(output_encoding);