我已经使用 utf8_unicode_ci 排序规则设置了一个 MySQL 数据库,并且它上面的所有表和列都有相同的排序规则。
我的 Doctrine 配置有 SET NAMES utf8 作为连接选项,我的 html 文件使用 utf8 字符集。
保存在这些表格中的文本包含重音字符(á、è 等)。
问题是当我将内容保存到数据库时,它会以奇怪的字符保存,就像我尝试在 UTF8 表中保存 ISO 时一样。(例如:Notícias)
我发现的唯一解决方法是在保存之前使用 utf8_decode,在打印之前使用 utf8_encode。
这意味着,由于某种原因,介于两者之间的东西正在将 utf8 与 iso 混淆。
可能是什么?
谢谢。
编辑:
我已经设置在保存之前进行编码,在打印之前进行解码,它可以正确打印,但在 DB 中我的字符更改为:
XPTÓ -> XPTÓ</p>
这使得在 DB 中搜索“XPTÓ”变得不可能......