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
mb_internal_encoding
(PHP 4 >= 4.0.6, PHP 5)
mb_internal_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_http_input() - Определение кодировки символов входных данных HTTP-запроса
- mb_http_output() - Установка/получение кодировки символов HTTP вывода
- mb_detect_order() - Установка/получение списка кодировок для механизмов определения кодировки
mdirks at gulfstreamcoach dot com
17-May-2007 10:55
Joachim Kruyswijk
25-May-2006 02: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 06: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 01: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.
