PHP Doku:: Set/Get internal character encoding - function.mb-internal-encoding.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzUnterstützung menschlicher Sprache und ZeichenkodierungMultibyte StringMultibyte String Funktionenmb_internal_encoding

Ein Service von Reinhard Neidl - Webprogrammierung.

Multibyte String Funktionen

<<mb_http_output

mb_language>>

mb_internal_encoding

(PHP 4 >= 4.0.6, PHP 5)

mb_internal_encodingSet/Get internal character encoding

Beschreibung

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

Set/Get the internal character encoding

Parameter-Liste

encoding

encoding is the character encoding name used for the HTTP input character encoding conversion, HTTP output character encoding conversion, and the default character encoding for string functions defined by the mbstring module.

Rückgabewerte

If encoding is set, then Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben. If encoding is omitted, then the current character encoding name is returned.

Beispiele

Beispiel #1 mb_internal_encoding() example

<?php
/* Set internal character encoding to UTF-8 */
mb_internal_encoding("UTF-8");

/* Display current internal character encoding */
echo mb_internal_encoding();
?>

Anmerkungen

Hinweis:

Das interne Encoding oder das mit mb_regex_encoding() festgelegte Zeichenencoding wird als Zeichenencoding für diese Funktion genutzt.

Siehe auch


4 BenutzerBeiträge:
- Beiträge aktualisieren...
mdirks at gulfstreamcoach dot com
17.05.2007 17: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.05.2006 9: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.05.2005 13: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.05.2005 8: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.



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)