У меня есть пользователей таблица с Collation as utf8_general_ci. Наличие полей, таких как имя, возраст, телефон и электронная почта.PHP json_encode не работает
Кажется, что некоторые из строк поля имени имеют некоторые конечные пробелы. Если echo-ed echo "selectedUser " . $selectedUser->name
; Он печатает это имя с пробелами, и я просто скопировал имя из поля БД и вставить его на файл PHP, и эхо-эд, что текст, он печатал как
selectedUser «Rohan Хариш Reddy \ u00a0 \ u00a0 "
имя поля содержит только конечные белые-пространства на поле, я не уверен,
почему он печатается, как это? Почему он не работает для json_encode? Как я могу преобразовать этот пользователь объект с json_encode?
Код:
$users = $stmt->fetchAll(PDO::FETCH_OBJ);
foreach ($users as $user) {
$selectedUser = $user;
echo "selectedUser " . json_encode($selectedUser);
}
Если добавить ниже код выше принести все заявления, оно работает нормально.
$this-> adminConn ->query("SET NAMES utf8");
$stmt = $this-> adminConn ->query($sql);
Мне нужно установить "SET NAMES utf8" для каждого запроса делать? Есть ли общий способ для его достижения?
Когда мы загружаем файлы csv, это происходит. Вставляется Unicode 0x00A0. Любой способ избежать этого при анализе загруженного файла и избежать его на json_encode ?? – Muthu
Я не знаю, как выглядит ваш CSV, или как вы его разбираете, или как вы санируете (или не) свои ценности. Избежать его на 'json_encode' просто, просто замените все nbsps на обычные пробелы или удалите их прямо, используя' preg_replace', перед 'json_encode'. – Amadan
Если имя имеет какие-либо неразрывные пробелы, этот конкретный объект не печатается с помощью json_encode ($ selectedUser) из-за этих неразрывных пробелов. – Muthu