【发布时间】:2016-08-13 15:37:14
【问题描述】:
我创建了一个使用 UTF-8 数据库字符集的应用程序。使用 php 创建连接时,我正在执行mysqli_query($link, 'SET CHARACTER SET utf8')。
在 localhost 上使用 SELECT、INSERT 等都可以正常工作。我使用一些示例数据在 Web 上部署了应用程序并快速浏览了我看到的页面 UTF-8 字符很好。
当我通过提供的界面添加一些记录时,第二天客户打电话给我的数据显示为??????我很惊讶他是对的,但在本地主机上它工作正常。
经过一番搜索,我找到了多个答案,例如执行这些查询
set character_set_client='utf8'set character_set_results='utf8'set collation_connection='utf8_general_ci'SET NAMES 'utf8'- 然后设置然后编码响应等
它们都不起作用,但这个mysqli_set_charset($link, 'utf8') 一个。
我的问题是
- 为什么它在 localhost 上工作,只有
INSERT or UPDATE查询在部署后产生问题,但SELECT工作正常 -
mysqli_set_charset($link, 'utf8')和mysqli_query($link, 'SET CHARACTER SET utf8')有什么区别
【问题讨论】:
-
This 表示“问号”是由于没有 utf8 文本和
CHARACTER SET utf8而产生的。 -
哪些字符变成了问号?还有 utf8 vs utf8mb4 的问题。