我们的网站是使用设置为...的元标记开发的。
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
这适用于M-dashes和特殊引号等。但是,当数据输入到在MySQL中存储数据的CMS组件时,我遇到了问题。 MySQL排序规则设置为UTF8_swedish_ci(我读到这是好的,并且在phpMySqlAdmin中设置时必须是默认值。)
我现在遇到的问题是当我将数据从DB输出到页面时,字符是 utf8编码,所以我通过uft8_decode()php函数运行它们。我认为这会解决不兼容问题,但我得到的并不是我所期望的。
当我在文本字段中查看数据库中的数据时(再次通过phpMySqlAdmin),它看起来像这样......
这 - 那
当我在屏幕上查看它时,它看起来像......
这个?这我知道我可以尝试在数据库或文本中查找/替换其中的一堆,但我希望以编程方式执行此操作更简单。
谢谢, 唐
更新
仍有一个问题,htmlentities()很遗憾无法修复。
我在这样的文件中有文字:我们(特别')。我的MySQL排序规则是“latin1_swedish_ci”(默认值)。如果我将标题或元数改为iso / utf,则一个或另一个中断。 W / utf-8(')黑色钻石但数据库内容很好。使用iso,内联内容是可以的,但db中的内容有各种各样的和其他字符。尝试将MySQL排序规则更改为utf-8,但没有看到差异。
我决定手动更改项目。感谢您的任何其他建议。
答案 0 :(得分:1)
如果数据库中的数据是UTF8,则在连接到MySQL后需要运行此查询:
SET NAMES UTF8
答案 1 :(得分:1)
假设您能够在数据库中正确设置编码,我建议的方法是:
确保已正确设置Content-Type标头 服务器。这可以通过使用头函数在php中完成。
标题('Content-Type:text / html; charset = iso-8859-1');
请注意,这是优先的,并且是最简单的信息,因为用户代理不必解析它。
在HTML文件中设置元标记。
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
如需进一步阅读,请参阅:
答案 2 :(得分:0)
我的猜测是,尽管你使用了meta标签,但Web服务器会发送一个标头,将字符集设置为UTF-8。但是,解决这些问题的最简单方法通常是将非ASCII字符转义为HTML实体。