多字节字符串 函数
在线手册:中文  英文

mb_internal_encoding

(PHP 4 >= 4.0.6, PHP 5)

mb_internal_encoding设置/获取内部字符编码

说明

mixed mb_internal_encoding ([ string $encoding = mb_internal_encoding() ] )

设置/获取内部字符编码

参数

encoding

encoding 字符编码名称使用于 HTTP 输入字符编码转换、HTTP 输出字符编码转换、mbstring 模块系列函数字符编码转换的默认编码。

返回值

如果设置了 encoding,则成功时返回 TRUE, 或者在失败时返回 FALSE。 如果省略了 encoding,则返回当前的字符编码名称。

范例

Example #1 mb_internal_encoding() 例子

<?php
/* 设置内部字符编码为 UTF-8 */
mb_internal_encoding("UTF-8");

/* 显示当前的内部字符编码*/
echo mb_internal_encoding();
?>

参见


多字节字符串 函数
在线手册:中文  英文

用户评论:

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.

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

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.

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.

mortoray at ecircle-ag dot com (2005-05-26 23:58:39)

Be aware that the strings in your source files must match the encoding you specify by mb_internal_encoding.  It appears the Parser loads raw bytes from the file and refers to its internal encoding to determine their actual encoding.

To demonstrate, the following outputs as espected when the /source/ file is Latin-1 encoded:

<?php
    mb_internal_encoding
("iso-8859-1");
    
mb_http_output"UTF-8" );
    
ob_start("mb_output_handler");

    echo 
"???<br/>";

    
?>???

Now, a typical use of mb_internal_encoding is shown as follows.  Make the change to "utf-8" but leave the /source/ file encoding unchanged:

<?php
    mb_internal_encoding
("UTF-8");
    
mb_http_output"UTF-8" );
    
ob_start("mb_output_handler");

    echo 
"???<br/>";

    
?>???

The output will just show the <br/> tag and no text.

Save the file as UTF-8 encoding and then the results will be as expected.

易百教程