специальные символы при доступе к содержимому textarea в php - PullRequest
0 голосов
/ 13 марта 2012

Я получаю специальные символы из поля ввода textarea в моей форме

Так что, если я введу текст ниже

Филбрик, чей «В сердце моря: Трагедия»of the Whaleship Essex », рассказывающий о реальном вдохновении для кораблекрушения Мелвилла, слегка утомляет его эрудицией.

Когда я получаю к нему доступ в php.

Philbrick, я получаю следующееЧей «В сердце моря: Трагедия китобойного корабля Эссекса» рассказывает о реальном вдохновении для кораблекрушения Мелвилла, слегка его эрудицию носит.

Я пробовал нижеДоступ к тексту, но заменить не работает.Не совпадают ли эти специальные символы, когда я копирую их в код или что-то еще, чего не хватает?

$string = htmlspecialchars($_POST["t"]) ;
$string = html_entity_decode($string, ENT_QUOTES, "UTF-8");
$string = str_replace('“', "\"", $string);
$string = str_replace('’', "'", $string);

Ответы [ 2 ]

1 голос
/ 14 марта 2012

Там может быть ничего плохого в том, что вы видите. Вам, возможно, не нужно манипулировать $ _POST с исправлениями htmlentities или иным образом. Возможно, вы смотрите на вывод браузера в стиле barebone.

Если вы отлаживаете это, выплевывая что-то вроде print_r( $_POST ); die;, убедитесь, что где-то над ним на вашей странице есть мета-строка, устанавливающая кодировку UTF-8:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Это обеспечит правильную визуализацию умных персонажей (предположительно откуда-то вставленных) на экране.

Совершенно не связано: Отличная книга, кстати. Люблю начало сцены с изможденными моряками, копящими свои груды костей.

1 голос
/ 13 марта 2012

На самом деле у вас есть не обычные одинарные и двойные кавычки, а какая-то причудливая версия в юникоде: & # X201C; & # x201d & # x2019

Попробуйте utf8_decode. Кстати, какую кодировку вы используете, Windows-1250?

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