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() - Установка/получение списка кодировок для механизмов определения кодировки
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Поддержка языков и кодировок
- Многобайтные строки
- mb_check_encoding
- mb_convert_case
- mb_convert_encoding
- mb_convert_kana
- mb_convert_variables
- mb_decode_mimeheader
- mb_decode_numericentity
- mb_detect_encoding
- mb_detect_order
- mb_encode_mimeheader
- mb_encode_numericentity
- mb_encoding_aliases
- mb_ereg_match
- mb_ereg_replace_callback
- mb_ereg_replace
- mb_ereg_search_getpos
- mb_ereg_search_getregs
- mb_ereg_search_init
- mb_ereg_search_pos
- mb_ereg_search_regs
- mb_ereg_search_setpos
- mb_ereg_search
- mb_ereg
- mb_eregi_replace
- mb_eregi
- mb_get_info
- mb_http_input
- mb_http_output
- mb_internal_encoding
- mb_language
- mb_list_encodings
- mb_output_handler
- mb_parse_str
- mb_preferred_mime_name
- mb_regex_encoding
- mb_regex_set_options
- mb_send_mail
- mb_split
- mb_strcut
- mb_strimwidth
- mb_stripos
- mb_stristr
- mb_strlen
- mb_strpos
- mb_strrchr
- mb_strrichr
- mb_strripos
- mb_strrpos
- mb_strstr
- mb_strtolower
- mb_strtoupper
- mb_strwidth
- mb_substitute_character
- mb_substr_count
- mb_substr
Коментарии
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.
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.
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
Note that mb_internal_encoding is not necessary in PHP 5.6
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');
// ------------------------------------------------------------
?>