Как предотвратить появление странных символов на веб-страницах

Часто при выводе строк из базы данных на веб-страницу специальные символы отображаются в виде каких-то других странных символов (в моем примере em-dash превращается в â € "). Как я могу это предотвратить?

Я использую PHP + MySQL , и я не использую никаких frameworks .

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

Related of "Как предотвратить появление странных символов на веб-страницах"

в вашей странице просмотра html

 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 

и если вы вставляете какой-то другой символ языка вместо английского, чем сделайте этот столбец utf8-general-ci

В верхней части страницы в теге заголовка используйте приведенный ниже код:

 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 

Вы можете попробовать это. Используйте следующую встроенную функцию php, чтобы избежать этих символов в заданной строке. В вашем случае данные из базы данных.

 html_entity_decode($given_string,ENT_QUOTES, "ISO-8859-1"); 

Mojibake – Это классический случай

  • Байты, которые у вас есть на клиенте, правильно закодированы в utf8.
  • Вы связаны с SET NAMES latin1 (или set_charset('latin1') или …), вероятно, по умолчанию. (Это должно было быть utf8 .)
  • Столбец в таблице был объявлен CHARACTER SET latin1 . (Или, возможно, это было унаследовано из таблицы / базы данных.) (Это должно было быть utf8 .)