我已将我的数据库从Latin 1转换为UTF8,并使用phpPMyAdmin输入数据并正确显示。但是,在我用PHP开发的页面中查看并使用我的简单CMS编辑它可以保存必须编码错误的字符。
我花了几个小时进行研究,最终想出了这段代码:
mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $conn_products);
当在数据库操作之前放置时纠正问题 - 非常棒!
我已经做了一些进一步的研究,并且(我相信)发现了一种在整个MySQL服务器上使其成为永久性的方法,但是我想永久地为每个数据库更改它,因为大多数使用服务器的站点是拉丁文1,需要保持这种状态。
有人能指出我正确的方向吗?
答案 0 :(得分:2)
不幸的是,你不能为每个数据库做这件事,如果客户端没有说明任何内容,它可以由客户端应用程序设置,也可以由服务器设置。你只需要在每个会话中设置一次,所以只是教自己让一个永远跟随mysql_select_db()
的{{1}}可能与mysql_query('SET NAMES utf8;')
(或你需要的任何字符集)应该做的。