Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 非英语字符的MySQL排序错误_Php_Mysql_Ajax_Collation - Fatal编程技术网

Php 非英语字符的MySQL排序错误

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

我无法显示utf8\u常规\u ci字符。我已将所有表和列设置为utf8,但所有非英语字母字符都不会显示(它们会显示,但会像这样加密)。还有像“+”等符号也不会出现。我正在Bluehost上运行我的网站


让我困惑的是,我在我的网站上使用了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中看起来好吗?