我的UTF-8 MySQL表中有一列是数据类型' longtext'。当我在PHP中的charset = UTF-8页面上显示字符串时,偶尔会得到一个unicode字符(�或U + FFFD)。例如:
"这些调整都不会影响现有的部队结构或军事能力,效率将进一步使美国欧洲司令部能够为高优先级任务提供资源,�五角大楼新闻秘书海军后方约翰柯比说发布。
我已经尝试将我的字符串包装在html_entity_decode()中,用什么都没有替换unicode字符,但没有太多运气:
$content = html_entity_decode(preg_replace("/U\+([0-9A-F]{4,5})/", "", $getstory[0]['content']), ENT_NOQUOTES, 'UTF-8');
作为旁注,此问题不会发生在插入此表列的新数据中,只会出现旧数据。
有什么建议吗?
答案 0 :(得分:0)
尝试将php文件的编码更改为utf8。这可以在您的编辑器中完成,位于Tools - Character Encoding
,并将其更改为UTF-8。
如果找不到,请在记事本中打开,然后转到文件 - 另存为,当提示保存位置时,在文件名下方,会有一个选项可供选择在您希望保存文件的字符编码中。
**编辑: 看起来您想要更改数据库字符集。转到phpmyadmin,在那里你可以为你的数据库和每个表分别更改它