MYSQL Символы вроде (', ", &) и т. Д. Выглядят по-разному - PullRequest
0 голосов
/ 10 июня 2011

Я держу базу данных, которая автоматически заполняется моими пользователями. но когда есть вход, такой как My Father's Will. Он попадет в базу данных как: My Father's Will.

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

Я использую PHP, сервер MySQL и PHPMyAdmin в качестве инструмента управления БД.

Ответы [ 5 ]

2 голосов
/ 10 июня 2011

Похоже, что ' экранируется как символ HTML.Я предполагаю, что вы делаете неправильный побег, например, используете htmlentities вместо mysql_real_escape_string.Если эта информация не помогает, пожалуйста, оставьте свой код.Будет угадывать без.

1 голос
/ 10 июня 2011

Когда вы извлекаете значения из вашей базы данных, используйте htmlspecialchars_decode (). Это преобразует все специальные символы html обратно в обычный текст.

$str = 'My Father's Will';
echo htmlspecialchars_decode($str);

выведет:

My Father's Will
0 голосов
/ 10 июня 2011

Скорее всего, в вашем коде где-то есть вызов htmlspecialchars(..., ENT_QUOTES), который закодирует ' и " в символьные объекты.Если они находятся в базе данных в зашифрованном виде, и конечный пользователь видит символьные объекты, то вы выполняете двойное кодирование, и вывод вашего скрипта выглядит примерно так: &x27;.

0 голосов
/ 10 июня 2011

Похоже, что вы, возможно, избегаете (например, php's htmlentities ()) свой ввод на пути к базе данных. Правильнее всего вместо этого избегать его только при выводе обратно на экран.

0 голосов
/ 10 июня 2011

Я не могу понять, что вы спрашиваете, так как "Воля моего отца" и "Воля моего отца" в точности совпадают?

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

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