©
本文档使用 PHP中文网手册 发布
(PHP 4 >= 4.0.6, PHP 5)
mb_internal_encoding — 设置/获取内部字符编码
$encoding
= mb_internal_encoding()
] )设置/获取内部字符编码
encoding
encoding
字符编码名称使用于 HTTP 输入字符编码转换、HTTP 输出字符编码转换、mbstring 模块系列函数字符编码转换的默认编码。
You should notice that the internal encoding is totally different from the one for multibyte regex.
如果设置了 encoding
,则成功时返回 TRUE
, 或者在失败时返回 FALSE
。
In this case, the character encoding for multibyte regex is NOT changed.
如果省略了 encoding
,则返回当前的字符编码名称。
Example #1 mb_internal_encoding() 例子
<?php
mb_internal_encoding ( "UTF-8" );
echo mb_internal_encoding ();
?>
[#1] webfav at web dot de [2015-09-16 12:14:10]
all together
<?php
// ------------------------------------------------------------
header('Content-Type: text/html; charset=UTF-8');
mb_internal_encoding('UTF-8');
mb_http_output('UTF-8');
mb_http_input('UTF-8');
mb_regex_encoding('UTF-8');
// ------------------------------------------------------------
?>
[#2] Anonymous [2015-05-31 19:49:58]
Note that mb_internal_encoding is not necessary in PHP 5.6
[#3] john leborgne [2012-08-01 10:18:03]
i noticed that setting mb_internal_encoding('UTF-8') in my global site config.inc.php, doesn't work in my classes : it reverse back to ISO-8859-1.
Adding the call to the constructor of my top site class resolve this.
[#4] mdirks at gulfstreamcoach dot com [2007-05-17 08:55:22]
In response to mortoray at ecircle-ag dot com:
The characters display fine as long as you set the Encoding to something more "Latin 1" compatible (i.e. US-ACSII, ISO-8859-1, ISO-8859-1, or Windows 1252). PHP.net auto-detects to UTF-8
[#5] Joachim Kruyswijk [2006-05-25 00:52:29]
Especially when writing PHP scripts for use on different servers, it is a very good idea to explicitly set the internal encoding somewhere on top of every document served, e.g.
mb_internal_encoding("UTF-8");
This, in combination with mysql-statement "SET NAMES 'utf8'", will save a lot of debugging trouble.
Also, use the multi-byte string functions instead of the ones you may be used to, e.g. mb_strlen() instead of strlen(), etc.
[#6] mortoray at ecircle-ag dot com [2005-05-27 04:10:37]
To previous example, the PHP notes don't appear to support umlauted characters so there are question marks (?) there instead of what should be umlauated oue. Just substitute any high-order/accented character to see the effect.
[#7] mortoray at ecircle-ag dot com [2005-05-26 23:58:39]