Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.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
从mysql中选择时,PHP字符串不会转换为utf 8_Php_Mysql_Encoding_Utf 8_Collate - Fatal编程技术网

从mysql中选择时,PHP字符串不会转换为utf 8

从mysql中选择时,PHP字符串不会转换为utf 8,php,mysql,encoding,utf-8,collate,Php,Mysql,Encoding,Utf 8,Collate,我有以下脚本: header('Content-type: text/plain; charset=utf-8'); $rq = "SELECT `name` FROM `mapamond_countries` WHERE `id` = 93"; $str = $db->GetAll($rq); var_dump($str[0]['name']); var_dump("شيلى"); 字符串ØÙŠÙÙ‰是从数据库(phpmyadmin)复制粘贴的 第一个变量转储: 字符串(2

我有以下脚本:

header('Content-type: text/plain; charset=utf-8');

$rq = "SELECT `name` FROM `mapamond_countries` WHERE `id` = 93";
$str = $db->GetAll($rq);

var_dump($str[0]['name']);
var_dump("شيلى");
字符串ØÙŠÙÙ‰是从数据库(phpmyadmin)复制粘贴的

第一个变量转储: 字符串(25)“ÙÙÙÙÙÙكا”

第二个变量转储: 弦(8)“شيلى”

有人能解释为什么会有这种差异以及如何解决它吗?DB collate、表collate和列collate是utf8\u unicode\u ci。

请尝试:

1-运行此查询
alterdatabasemydatabasename charset=utf8

2-在执行任何查询之前,请使用
设置名称utf8

3-创建新表时使用
默认字符集=utf8

改变桌子

ALTER TABLE `tableName` CHARACTER SET utf8;

“二重编码”是“二重编码”的意思。选择十六进制(列)。。。从桌子上看你有什么。“C398C2B4C399C5A0C399E2809EC399E280B0”是十六进制的双编码值:“D8B4D98AD984D989”。本文讨论了双重编码。如果Osama的回答无法修复数据;阅读该博客和/或让我们进一步讨论这个问题。

字符集不是列属性吗?在表上设置时,您只是为新列设置默认值?系统管理员更改了db排序规则,因此插入b4的所有内容都是错误的。已使用将排序规则\u连接设置为旧连接,并将名称设置为utf8,现在一切正常。的可能重复