my.ini 和 mysql_connect 编码
PHP 的 mysql_connect()
函数在建立与 MySQL 服务器实例的连接时是否使用 MySQL my.ini 配置文件? 看来不是。
我有一个带有 UTF-8 编码的表和连接到数据库并以 UTF-8 编码插入数据的 PHP 脚本。
默认情况下,mysql_client_encoding()
返回latin1
。 当我在建立连接后使用 mysql_query("SET NAMES utf8")
或 mysql_set_charset("utf8")
时,一切正常。
我想知道是否有其他方法可以强制使用正确的编码从 PHP 与 MySQL 交换数据?
Does PHP’s mysql_connect()
function use the MySQL my.ini configuration file when it establishes the connection to the MySQL server instance?
It seems not.
I have the table with the UTF-8 encoding and the PHP script which connects to the database and inserts data in UTF-8 encoding.
By default the mysql_client_encoding()
returns latin1
.
When I use mysql_query("SET NAMES utf8")
or mysql_set_charset("utf8")
after establishing the connecion, all works fine.
I would like to know is there other way to force use correct encoding for exchange data with MySQL from PHP?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不相信有任何其他方法可以从客户端默认 MySQL 客户端编码设置(使用 php ini 设置或类似设置)。
从服务器端,您可能会发现 PHP 客户端继承了 MySQL 变量
character_set_client
但我无法确认这一点。I don't believe that there's any other way of defaulting the MySQL client encoding setting from the client side (with a php ini setting or similar).
From the server side you may find that the PHP client inherits the MySQL variable
character_set_client
but I'm unable to confirm that.