Как я могу остановить mysql от преобразования '
в ’
, когда я вставляю?Mysql превращается в «â € ™?
Я верю, что это как-то связано с кодировкой или чем-то еще?
Я использую php для выполнения mysql_insert.
Как я могу остановить mysql от преобразования '
в ’
, когда я вставляю?Mysql превращается в «â € ™?
Я верю, что это как-то связано с кодировкой или чем-то еще?
Я использую php для выполнения mysql_insert.
Одиночной кавычки вы вывесили называется «acute accent», который часто переходит из общей одинарной кавычки некоторых веба-приложениями. Это символ UTF8
, который при вставке в базу данных Latin-1
переводится в «â €». Это означает, что вам необходимо изменить charset MySQL на UTF8
или, альтернативно, изменить кодировку вашего сайта до Latin-1
.В первом случае предпочтительнее:
ALTER DATABASE YourDatabase CHARACTER SET utf8;
ALTER TABLE YourTableOne CONVERT TO CHARACTER SET utf8;
ALTER TABLE YourTableTwo CONVERT TO CHARACTER SET utf8;
...
ALTER TABLE YourTableN CONVERT TO CHARACTER SET utf8;
Возможно, кто-то сразу узнает ответ, но я этого не сделаю. Однако вот несколько советов о том, что для изучения (и, возможно, расширить вопрос о)
При работе с кодировками и спасаясь вы должны включать в себя полную историю данных
Вышеупомянутое объясняется тем, что все, что записывается в текстовый файл (браузер, клиент mysql, веб-сервер, приложение php, чтобы назвать несколько слоев, которые могли бы это сделать) могут испортить кодирование символов.
Для устранения, вы можете начать устранение, и, таким образом, первый шаг (в моей книге), является
SHOW VARIABLES LIKE 'character_set%'
SHOW CREATE TABLE TableName
, и искать кодировку и сортировку информацию, как по умолчанию для таблицы и явное определение в столбцахСказанное выше, я не думаю, что любой западный скрипт перекодировал бы один символ кавычки. .
EDIT Большинство из вышеперечисленнога от ответа и обсуждения here
Это то, что я сделал, и он работал на меня:
Сначала убедитесь, что столбец, содержащий 'является utf8_general_ci
Затем добавить mysql_set_charset к коду
$db=mysql_connect("localhost", $your_username, $your_password);
mysql_set_charset('utf8',$db);
mysql_select_db($your_db_name, $db);
тоже работал для меня :) спасибо –
Это связано с кодировками. Как вы вставляете/извлекаете данные - например, какую библиотеку и язык программирования (или, возможно, ORM) вы используете? – AndiDog
Какая кодировка является вашей базой данных? – RobertPitt
Да, это связано с кодировкой. Проверьте кодировку таблицы и строку подключения. Используйте правильную кодировку или unicode/utf. – codymanix