Php 非英语字符的MySQL排序错误
我无法显示utf8\u常规\u ci字符。我已将所有表和列设置为utf8,但所有非英语字母字符都不会显示(它们会显示,但会像这样加密)。还有像“+”等符号也不会出现。我正在Bluehost上运行我的网站Php 非英语字符的MySQL排序错误,php,mysql,ajax,collation,Php,Mysql,Ajax,Collation,我无法显示utf8\u常规\u ci字符。我已将所有表和列设置为utf8,但所有非英语字母字符都不会显示(它们会显示,但会像这样加密)。还有像“+”等符号也不会出现。我正在Bluehost上运行我的网站 让我困惑的是,我在我的网站上使用了AJAX。当我调用AJAX文件时,字符显示正常,但当加载到非AJAX页面时,我有一个错误,我告诉过您。确保您的浏览器将其解释为UTF-8。通过HTML中的meta标记来实现这一点 例如: <head> <meta charset="ut
让我困惑的是,我在我的网站上使用了AJAX。当我调用AJAX文件时,字符显示正常,但当加载到非AJAX页面时,我有一个错误,我告诉过您。确保您的浏览器将其解释为UTF-8。通过HTML中的meta标记来实现这一点 例如:
<head>
<meta charset="utf-8">
</head>
您之所以看不到Ajax的问题,是因为javascript编码是UTF-8。PHP并非如此,因此您应该将其添加到PHP中
header('Content-Type: text/html; charset=utf-8');
首先,您必须知道在何处使用字符集:
- 数据(在MySQL中使用
设置)排序规则/charset
- 网页(使用您的文件编辑器,切换编码)(在这种情况下,我认为页面内容不相关)
- 浏览器请求的页面(
标题+内容类型:
-tag) - MySQL连接(让
成为您的第一个查询)设置名称“utf8”;
- 将数据放入数据库的编码:仅将UTF-8编码的数据放入UTF-8列
我认为您在正确的编码字段中有错误的编码数据,因此在将数据放入数据库之前,请确保您的数据是UTF-8,例如表单所在的页面等。您能在数据库表中看到正确的字符吗?字段数据类型是什么?您是否正确地转义查询或使用准备好的PDO语句?您的连接/查询设置是否设置为utf-8?和网页?使用类似于
mysqli\u查询($this->\u db,“SET NAMES'utf8')代码>在连接类内或函数中。数据在PHPMyAdmin中看起来好吗?