Разрывы строк закодированы неправильно

проблема:

У меня есть 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);

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

Sakura Kinomoto 08.12.2018 05:19

Я проверил кодировку отправляемого значения и страницы, оба UTF-8

Rev 08.12.2018 05:30

Нам нужно увидеть как, который вы сохраняете и выводите, и в какой ОС вы это используете. @Rev

Funk Forty Niner 08.12.2018 05:41

Плюс к вопросу с кодировкой. Должна быть причина или причины, по которым эти персонажи отображаются именно так. На самом деле причин слишком много, в том числе из-за сопоставления, в каком формате были сохранены файлы, или параметров подключения. Если вам нужна дополнительная помощь, вы можете @Funk меня здесь, если хотите, чтобы мое или чье-то прямое внимание, иначе мы не узнаем, с кем вы разговариваете.

Funk Forty Niner 08.12.2018 05:50

@FunkFortyNiner Я обновил вопрос, добавив несколько вещей, которые, надеюсь, будут полезны

Rev 08.12.2018 06:06

Пожалуйста, проверьте этот вопрос stackoverflow.com/questions/279170/… и убедитесь, что у вас есть utf-8 на всех. Добавьте в вопрос соответствующую информацию о кодировке и проверках.

Sakura Kinomoto 08.12.2018 12:33
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
3
6
61
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

пс: Я все еще новичок в компании, поэтому не понимаю, почему изменяются данные, и думаю, что это проблема кодирования.

Другие вопросы по теме