Как опубликовать не-ascii символы в HTML-коде и прочитать его с помощью PHP? - PullRequest
0 голосов
/ 30 марта 2011

Я создал небольшую HTML-форму и сохранил ее как UTF-8 -кодированный PHP-файл:

<!DOCTYPE html>
<html>
<head><title>My form</title></head>
<body>
<h1>My form</h1>
<form method="post">
<input type="text" name="myfield" /><br />
<input type="submit" value="Send" />
</form>
</body>
</html>

Но если я наберу Öst в текстовом поле и отправлю его, шведское письмо Ö будет убрано, поэтому я получу st только тогда, когда прочту его с $_POST['name']. Я использую CodeIgniter PHP Framework, и если я читаю его с $this->input->post('name');, я получаю тот же результат, только st.

Почему я получаю эту проблему? CodeIgniter лишает меня шведского письма или у меня есть проблемы с кодировкой символов?

ОБНОВЛЕНИЕ: Я добавил метатег <meta charset="utf-8" \> в заголовок, и теперь он работает.

Ответы [ 4 ]

2 голосов
/ 30 марта 2011

Угадайте, вот ответ с учетом Codeigniter:

http://www.haughin.com/2010/02/23/building-utf8-compatible-codeigniter-applications/

По сути, вам придется создать новый файл form_helper.php с измененными функциями form_open и form_prep. Эти изменения позволят размещать символы UTF-8.

1 голос
/ 30 марта 2011

До тех пор, пока вы убедитесь, что ваш HTML-вывод имеет формат UTF-8 (правильный заголовок), вы можете использовать эту функцию при выводе деталей в форме, чтобы не разбивать текст:

form_prep()

Позволяет безопасно использовать HTML и символы, такие как кавычки в элементах формы, не прерывая форму.Рассмотрите этот пример:

$string = 'Here is a string containing "quoted" text.';    
<input type="text" name="myform" value="$string" />

Подробности здесь в руководстве пользователя .

0 голосов
/ 31 марта 2011

Используйте функцию Преобразовать в сущности CodeIgniter. Это довольно круто.

0 голосов
/ 30 марта 2011

Проверьте, что все php-файлы (контроллеры и что нет) также имеют UTF-8

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