codeigniter позволяет специальные символы (такие как: ä, é, î, ø, ù) в URI - PullRequest
3 голосов
/ 04 мая 2011

как разрешить специальные символы (такие как: ä, é, î, ø, ù) в uri в codeigniter

Ответы [ 2 ]

6 голосов
/ 04 мая 2011

Вы не можете использовать специальные символы непосредственно в URL.

RFC 1738 содержит следующий абзац:

URL пишутся только с графикой печатные символы US-ASCII набор кодированных символов.

Список символов в наборе символов US-ASCII можно найти по адресу http://www.columbia.edu/kermit/ascii.html.

Кроме того, определенные символы в этом наборе также зарезервированы для определенных целей, например символы «=» и «&». Эти символы (и символы, не включенные в набор символов US-ASCII) должны быть закодированы с использованием знака%, за которым следует ссылка на символ.

Вы можете кодировать эти значения в codeigniter, используя urlencode (). Например, если вы перенаправили пользователя с помощью перенаправления (urlencode (http://test.com/ä)),), он будет перенаправлен на http://test.com/%E4, который является действительным URL.

Чтобы декодировать этот процентный код обратно в обычный символ для отображения на вашей странице, просто используйте urldecode (), например:

echo 'The character is: ' . urldecode($this->uri->segment(2));

Надеюсь, это поможет.

Dan

3 голосов
/ 04 мая 2011

Вы можете настроить это в своей папке application / config, в файле config.php:

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

...