如何防止奇怪的字符出现在网页中

时间:2015-05-20 05:14:26

标签: php mysql character-encoding

通常在将数据库中的字符串输出到网页上时,特殊字符会显示为其他一些奇怪的字符(在我的示例中, em-dash 会变成 - / strong >“)。我该如何防止这种情况?

我正在使用PHP + MySQL,我没有使用任何frameworks

我猜这是由HTML和数据库之间不匹配的编码/字符集引起的,虽然我无法弄清楚如何修复它。

4 个答案:

答案 0 :(得分:3)

在标题标记的页面顶部使用以下代码:

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

答案 1 :(得分:2)

你可以试试这个。使用下面的php内置函数来避免给定字符串上的那些字符。在您的情况下,来自数据库的数据。

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

答案 2 :(得分:1)

在你的html视图页面中使用

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

如果您要插入一些其他语言字符代替英语而不是使该列utf8-general-ci

答案 3 :(得分:0)

Mojibake - 这是

的经典案例
  • 客户端中的字节在utf8中正确编码。
  • 您可能默认与SET NAMES latin1(或set_charset('latin1')或...)相关联。 (应该是utf8。)
  • 表格中的列已声明为CHARACTER SET latin1。 (或者它可能是从表/数据库继承的。)(应该是utf8。)