mbstring - для чего используется mb_language('uni'); mb_internal_encoding('UTF-8'); в начале PHP-скрипта?

Иногда я вижу некоторые PHP-скрипты со следующими строками в начале:

<?php
mb_language('uni');
mb_internal_encoding('UTF-8');

Я знаю, что эти две функции взяты из модуля mb_string PHP. Но какова эффективная цель вызова этих двух функций в начале скрипта?

Я прочитал документы, http://php.net/manual/en/function.mb-internal-encoding.php пользователь говорит:

Особенно при написании сценариев PHP для использования на разных серверах очень хорошей идеей является явная установка внутренней кодировки где-то поверх каждого обслуживаемого документа, например.

mb_internal_encoding("UTF-8");

Это, в сочетании с оператором mysql «SET NAMES 'utf8'», избавит от многих проблем с отладкой.

Кроме того, используйте многобайтовые строковые функции вместо тех, к которым вы, возможно, привыкли, например. mb_strlen() вместо strlen() и т.д.

Но насколько я должен беспокоиться о кодировке: соединения с БД (я использую кодировку UTF-8 для своих таблиц и вызываю SET NAMES utf8;, как только я подключаюсь к базе данных), входных значений HTTP-запроса и вывода (особенно при работе с многобайтовыми символами например, на японском языке), отправка электронной почты, шаблоны регулярных выражений для поиска текста и т. д. при написании i18n PHP-приложения и как эти mb_* функции действительно помогают мне?

Я также прочитал этот пост строковые функции PHP против функций mbstring и, насколько я понимаю, пользователь, который отвечает на вопрос, говорит, что следует избегать mb_* функций:

простая замена 8-битных строковых функций их аналогами mb_* не вызовет ничего, кроме неприятностей.

Спасибо за внимание. Понимание и разъяснения приветствуются.


person tonix    schedule 21.07.2016    source источник


Ответы (1)


Используется для кодирования сообщений электронной почты. Допустимые языки: «японский», «ja», «английский», «en» и «uni» (UTF-8). mb_send_mail() использует этот параметр для кодирования электронной почты.

Скопировано с http://php.net/manual/en/function.mb-language.php

person Syed Salman Ali    schedule 27.02.2017