PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

mb_language> <mb_http_output
Last updated: Fri, 05 Sep 2008

view this page in

mb_internal_encoding

(PHP 4 >= 4.0.6, PHP 5)

mb_internal_encoding内部文字エンコーディングを設定あるいは取得する

説明

mixed mb_internal_encoding ([ string $encoding ] )

内部文字エンコーディングを設定あるいは取得します。

パラメータ

encoding

encoding は、HTTP 入力文字エンコーディング変換、 HTTP 出力文字エンコーディング変換および mbstring モジュールの文字列関数においてデフォルトの文字エンコーディングとして使用されます。

返り値

encoding が設定された場合、 成功した場合に TRUE を、失敗した場合に FALSE を返します。 encoding が省略された場合、 現在の文字エンコーディング名を返します。

例1 mb_internal_encoding() の例

<?php
/* 内部文字エンコーディングをUTF-8に設定 */
mb_internal_encoding("UTF-8");

/* 現在の内部文字エンコーディングを表示 */
echo mb_internal_encoding();
?>

注意

注意: 内部エンコーディングあるいは mb_regex_encoding() で指定した文字エンコーディングを、 この関数の文字エンコーディングとして使用します。



mb_language> <mb_http_output
Last updated: Fri, 05 Sep 2008
 
add a note add a note User Contributed Notes
mb_internal_encoding
mdirks at gulfstreamcoach dot com
18-May-2007 12:55
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
25-May-2006 04:52
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
27-May-2005 08:10
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
27-May-2005 03:58
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.

mb_language> <mb_http_output
Last updated: Fri, 05 Sep 2008
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites