非英文字符在我的 php 页面上显示为问号 - 在数据库中显示正常
我有一个 MySQL 数据库表,其中填充了非英语数据。当我在 Navicat MySQL 浏览器中查看数据时,数据显示正常。但是,当我运行 php 脚本来选择并在网页上显示数据时,它会显示问号。页面编码设置为 utf8,甚至 MySQL 排序规则也设置为 utf8 - 选择和显示时出现错误...请帮助。
I have a MySQL database table populated with non English data. When I view the data in Navicat MySQL browser the data appears fine. However when I run a php script to select and display the data on a web page it displays question marks instead. The page encoding is set to utf8 and even the MySQL collation is set to utf8 - something gets wrong in selecting and displaying... please help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
MySQL 连接设置可能有问题。从 PHP 连接到数据库时,在运行任何其他 SQL 命令之前运行此 MySQL 命令:
这应该将连接的编码设置为 UTF-8。正如您所说,页面和数据库已经采用 UTF-8 格式(这也意味着页面发送
Content-Type: text/html; charset=utf-8
);默认情况下,连接本身可能会意外地具有不同的编码:(MySQL connection settings could be at fault here. Run this MySQL command when you connect to the database from PHP, before you run any other SQL commands:
This should set the connection's encoding to UTF-8. As you're saying, the page and the database is already in UTF-8 (that should also mean the page sends
Content-Type: text/html; charset=utf-8
); the connection itself can accidentaly have a different encoding by default :(另外,在HTML中,里面我们必须这样写:
当我们创建MySQL数据库时,我们必须使用这样的内容:
当我们创建表时,使用:
在PHP代码中,在mysql_connect()和mysql_select_db()之后,使用:
In addition, in HTML, inside we must write:
When we create a MySQL database, we must use something like this:
When we create tables, use:
In PHP code, after mysql_connect() and mysql_select_db(), use: