我在MySql数据库上有一个php / html应用程序。数据库编码为UTF-8,HTML文件(this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
和<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
)也是如此。
问题是,存在不一致,如列表页面(普通html,没有表格),我可以正确地看到UTF-8字符(),当我在mysql admin中选择值时,但在编辑表单中,我在输入文本字段中看到错误的字符()。 当我更新mysql admin 中的值时会发生这种情况。
反过来发生,如果我通过表单更新值我在输入文本字段中正确看到字符,但列表中错误(html,没有表单)()。
我读到的问题可能是文件编码,这很令人困惑,因为,如果我列出<meta charset="utf-8">
(我使用linux),我看到混合了utf-8和us-ascii文件,但是如果我使用崇高文本3打开,我可以在所有这些上看到UTF-8,即使我file -i
,save with encoding utf-8
也不会改变结果。
我还读到file -i
更像一个猜测而不是一个真实的结果,所以我很困惑哪个编码文件有,我怎么能真正改变它们。涉及的文件很多,模板,库等等。
修改
为了连接到数据库,我使用Doctrine(我忽略内部机制)和file -i
,我强制使用@mysql_connect
解
并非真正重复UTF-8 all the way through,但@deceze是对的,我需要按照SO response中的说明配置Doctrine连接:
$this->charset_utf8 = true
谢谢