Codeigniter: Как передать параметры UTF8 в контроллер с помощью URL? - PullRequest
0 голосов
/ 25 апреля 2019

Я использую Code-igniter 3 и мне нужно передать параметр в контроллер, используя параметры URL.Мой URL выглядит примерно так:

http://192.168.40.50/user/list/محمد

И я добавил это в файл конфигурации:

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-|آ-ی';

И мой контроллер выглядит так:

public function list($name)
{ 
    // The $name parameter is incorrect here
    // In this case $name = 'E-E'
}

Проблема в том, что я получаю «EE» вместо «محمد».

Я просто искал много вопросов, но не нашел решения

َ ОБНОВЛЕНИЕ

Я использую маршрутизацию.Параметры доставляются правильно без маршрутизации, но когда я добавляю маршруты, символы UTF-8 меняются.Мой маршрут такой:

$route['user/list/(:any)'] = 'user/list_of/$1';

1 Ответ

0 голосов
/ 25 апреля 2019

Фил Стерджон (Phil Sturgeon) подробно объясняет, как разрешить UTF-8: вот выдержка, за которой следует полная ссылка на статью:

Установка заголовка HTTP в index.php Все запросы к CodeIgniter выполняются через файл index.php, которыйпо умолчанию находится вне системы / папки.По этой причине это идеальное место для добавления заголовка PHP для меня.

header('Content-Type: text/html; charset=utf-8');

Скажите CodeIgniter, что происходит CodeIgniter по умолчанию настроен на использование UTF-8 для большей части его внутренней функциональности, поэтому простоубедитесь, что кодировка установлена ​​в UTF-8 в вашем файле application / config / config.php.

$config['charset'] = "UTF-8";

Настройка подключения к базе данных

$db['default']['char_set'] = "utf8"; $db['default']['dbcollat'] = "utf8_unicode_ci";

На этом этапе вы сможете использоватьсимволы UTF-8, если вы хотите сохранить их в той БД, которую вы используете, прочитайте далее по этой ссылке:

ИСПОЛЬЗОВАНИЕ UTF-8

Вы также можете обратиться к этой статье: Использование UTF-8 Stackoverflow

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...