проблема:
У меня есть 2 текстовых поля, первое я использую для отправки текста в базу данных (mysql), а второе используется для отображения полученного текста. Однако разрывы строк первого не применяются ко второму.
пример:
hello
world
будет выглядеть так:
hello world
когда я проверил данные, которые отправляю в $ _POST, я обнаружил, что разрыв строки переводится в это 'ã € €'
Array ( [memo_1] => fff ggg bbb )
и закодированный URL-адрес выглядит так:
memo_1: eee%E3%80%80ddd
остальные данные удалены из массива для краткости.
что я пробовал:
Я пробовал использовать nl2br, но поскольку в этом тексте нет \ n, это не работает. Я попытался использовать str_replace, чтобы изменить эти символы на \ n, но это тоже не сработало.
Я не уверен, почему появляются эти странные символы, поскольку у меня установлена кодировка UTF-8, и мне очень жаль, если это не проблема, связанная с кодировкой.
Обновить:
PHP: 5.6.38
mysql: 5.7.24, а сортировка таблицы - utf8_general_ci
проект работает внутри бродячей коробки: centos 6
экономия:
include('./common/env.php');
include('./login_manager.php');
$virgin = $_POST['virgin'];
$memo_1 = $_POST['memo_1'];
$memo_2 = $_POST['memo_2'];
$call_counterpart = $_POST['call_counterpart'];
$call_status = $_POST['call_status'];
$recall_time_temp = $_POST['recall_time'];
$sql = "UPDATE call_history SET ";
$sql .= "memo_1 = '$memo_1', ";
$sql .= "memo_2 = '$memo_2', ";
$sql .= "call_status = '$call_status', ";
$sql .= "call_counterpart = '$call_counterpart', ";
if ($recall_time != "") {
$sql .= "recall_time = '$recall_time', ";
$sql .= "recall_flag = '1', ";
}
$sql .= "active_flag = '1' ";
$sql .= "WHERE id = '$history_id' ";
}
mysql_query($sql);`
получение:
$sql = "SELECT c.*, s.name staff_name ";
$sql .= "FROM call_history c ";
$sql .= "LEFT JOIN staff s ON c.staff_id = s.id ";
$sql .= "WHERE 1 ";
$sql .= "AND c.active_flag = 1 ";
$sql .= "ORDER BY c.id DESC ";
$rs = mysql_query($sql);
Я проверил кодировку отправляемого значения и страницы, оба UTF-8
Нам нужно увидеть как, который вы сохраняете и выводите, и в какой ОС вы это используете. @Rev
Плюс к вопросу с кодировкой. Должна быть причина или причины, по которым эти персонажи отображаются именно так. На самом деле причин слишком много, в том числе из-за сопоставления, в каком формате были сохранены файлы, или параметров подключения. Если вам нужна дополнительная помощь, вы можете @Funk меня здесь, если хотите, чтобы мое или чье-то прямое внимание, иначе мы не узнаем, с кем вы разговариваете.
@FunkFortyNiner Я обновил вопрос, добавив несколько вещей, которые, надеюсь, будут полезны
Пожалуйста, проверьте этот вопрос stackoverflow.com/questions/279170/… и убедитесь, что у вас есть utf-8 на всех. Добавьте в вопрос соответствующую информацию о кодировке и проверках.






Похоже, что ошибка была не в кодировке. было несколько строк кода, написанных другим разработчиком в компании, которые были мешающий с данными, отправляемыми на сервер, которые я должен был исправить, чтобы отправить действительные данные.
пс: Я все еще новичок в компании, поэтому не понимаю, почему изменяются данные, и думаю, что это проблема кодирования.
Похоже, это проблема с кодировкой. Проверить кодировку страницы и полученное значение