我正在使用WordPress中的一个插件,该插件将一些HTML代码存储在字段中。此列为
当我想要输出此信息时,所有特殊字符,如
当插件显示此文本时,它是完美的。以下是头部内容:
字符在MYSQL中得到正确存储,我通过PHP这样输出它:
mediumtext utf8_general_ci
。当我想要输出此信息时,所有特殊字符,如
" ´ ' ...
和其他一些字符会显示为带有问号的黑色菱形符号�
。当插件显示此文本时,它是完美的。以下是头部内容:
<meta charset="UTF-8" />
当我在其他地方输出时,我的脑海里会有这个问题,所有这些字符都会丢失:
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
字符在MYSQL中得到正确存储,我通过PHP这样输出它:
ob_start();?>
some html
<?php echo $row4['details'];?> <- this is the field im talking about
some html
<?php
$details = ob_get_clean();
然后只需:
echo $details;
我已经阅读了很多相关内容,字符集总是被提到,但我认为我的字符集没问题。
感谢您的帮助!
编辑:添加完整示例
在 WordPress 中显示的文本。正如我在评论中所说,这可能是由编辑从 Microsoft Word 复制/粘贴到 Worpress 中的。
8. Choose the verb to complete the sentence.
______ you ever _____ the proverb, “Time is gold”?
Has… heard…
Have… hear…
Have… heard…
在数据库中,存储的格式如下(请勿查看正确/用户答案,因为它们已经正常工作):
<span class='watupro_num'>8. </span>Choose the verb to complete the sentence.</p>
<p>______ you ever _____ the proverb, “Time is gold”?</p></div>
<ul>
<li class='answer'><span class='answer'>Has… heard…</span></li>
<li class='answer user-answer'><span class='answer'>Have… hear…</span></li>
<li class='answer correct-answer'><span class='answer'>Have… heard…</span></li>
</ul>
从数据库中显示的文本(我的工作内容)
8. Choose the verb to complete the sentence.
______ you ever _____ the proverb, �Time is gold�?
Has� heard�
Have� hear�
Have� heard�
由于Kirit Patel的贡献,在utf8_encode()
之后显示的文本
8. Choose the verb to complete the sentence.
______ you ever _____ the proverb, Time is gold?
Has heard
Have hear
Have heard
我刚刚发现字符仍然存在。在编辑时,我可以看到一个带有数字的框(在预览中不显示)。
´
)。我怀疑您的应用程序使用Windows-1252或ISO-8859-1,因此MySQL将把UTF-8数据库值转换为这样的单字节编码。如果您将其声明为UTF-8(实际上不是),则会看到�
。 - Álvaro González