通常在将数据库中的字符串输出到网页上时,特殊字符会显示为其他一些奇怪的字符(在我的示例中, em-dash 会变成 - / strong >“)。我该如何防止这种情况?
我正在使用PHP + MySQL
,我没有使用任何frameworks
。
我猜这是由HTML和数据库之间不匹配的编码/字符集引起的,虽然我无法弄清楚如何修复它。
答案 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 - 这是
的经典案例SET NAMES latin1
(或set_charset('latin1')
或...)相关联。 (应该是utf8
。)CHARACTER SET latin1
。 (或者它可能是从表/数据库继承的。)(应该是utf8
。)