Дезинфицировать символы на MySQL Insert

0

У меня есть текстовое поле в таблице, которое выглядит так:

Brand New Floor Plan - этот двухэтажный кондоминиум "Сандпипер" имеет 2 спальни, 2 ½ ванны и ден и 8 межкомнатных дверей.

Когда я показываю их на веб-странице, я получаю действительно странные символы, где "и" происходят следующим образом:

Я могу очистить двойные кавычки так:

UPDATE RESI SET MarketingRemarks = REPLACE(MarketingRemarks, '"', '"');
UPDATE RESI SET MarketingRemarks = REPLACE(MarketingRemarks, '"', '"');

Вызывает ошибку:

UPDATE RESI SET MarketingRemarks = REPLACE(MarketingRemarks, '', ''');

ОШИБКА: [Err] 1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии сервера MariaDB, для правильного синтаксиса для использования рядом с '' '') 'в строке 1

Я думаю, что проблема заключается в использовании одинарных кавычек три раза подряд '' '

Как очистить одиночные кавычки?

  • 0
    Это проблема кодирования ... где-то. Либо ваша кодировка MySQL не может обрабатывать фигурные кавычки, и она заменяет их смайликами, или, возможно, вам нужно кодировать HTML-код перед отправкой в веб-браузер.
  • 0
    @TimBiegeleisen обновленный вопрос.
Теги:

2 ответа

1
Лучший ответ

Чтобы исправить ошибку 1064, вы должны избегать символа кавычки с обратной косой чертой:

UPDATE RESI SET MarketingRemarks = REPLACE(MarketingRemarks, '', '\'');

Чтобы исправить вашу проблему с символами, не появляющимися на вашей веб-странице, вы должны правильно управлять кодировкой, которая в основном требует 3 вещи:

A. В идеале ваша таблица должна иметь кодировку utf8.

B. в коде, который находится за вашей веб-страницей, вы должны сообщить базе данных, что вы хотите кодирование utf8. Например, в PHP с mysqli:

$mysqli->set_charset("utf8"); 

C. Вы должны указать кодировку utf8 в заголовке html страницы:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  • 0
    Отличный ответ, спасибо за помощь!
0

Если вы можете загрузить "неправильные значения" из базы данных и правильно их показать на Java, вы должны попытаться как-то избежать этого:

https://coderwall.com/p/rvduyw/jdbc-inserting-unicode-utf-8-characters-into-mysql

И обновите строку с новым значением. Это должно исправить это.

  • 0
    Обновленный вопрос, проверьте это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню