Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.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 5.5降级到5.1,utf-8通用_Php_Mysql_Utf 8 - Fatal编程技术网

Php 从mysql 5.5降级到5.1,utf-8通用

Php 从mysql 5.5降级到5.1,utf-8通用,php,mysql,utf-8,Php,Mysql,Utf 8,我使用wamp作为localhost,它的mysql版本是5.5。当我完成我的网站,我想上传到我的网站(共享托管)。运行(5.1),但我不能再插入阿拉伯字母 当我用阿拉伯语插入任何字段时,都会将其存储为奇怪的字符“Øوؔ 它在我的电脑上做得很好,但不是在网上 默认情况下,数据库是myisam,但所有表都是带有utf8\u general\u ci的innodb。 这也是我在我的机器上使用的同一个数据库(默认情况下为innodb)(我已将其导入共享主机上的新数据库) 到目前为止,我在建立连接后

我使用wamp作为localhost,它的mysql版本是5.5。当我完成我的网站,我想上传到我的网站(共享托管)。运行(5.1),但我不能再插入阿拉伯字母

当我用阿拉伯语插入任何字段时,都会将其存储为奇怪的字符“Øوؔ

它在我的电脑上做得很好,但不是在网上

默认情况下,数据库是myisam,但所有表都是带有utf8\u general\u ci的innodb。 这也是我在我的机器上使用的同一个数据库(默认情况下为innodb)(我已将其导入共享主机上的新数据库)

到目前为止,我在建立连接后尝试了这些东西

mysql_set_charset('utf8');


我还能做些什么?

如果您使用的是
mysql\u set\u charset('utf8')并且在插入数据时没有得到任何错误,这意味着您正确地给出了数据库utf-8。另一方面,您可以在其他一些字符集中定义表,例如Windows-1256(MySQL标记为“cp1256”
),但从您看到的输出来看,这似乎是不可能的,UTF-8解码为Windows-1252

所以我看到的可能性是,您正在回传数据库中的数据,并看到这些字符串。在发送任何输出之前,您需要告知浏览器数据也是UTF-8格式:

<?php
header("Content-Type: text/html; charset=utf-8"); 

有一次,我使用了
htmlspecialchars()
,但当我使用
htmlspecialchars($string,entu引号,'UTF-8')问题已解决


希望您也有同样的问题。

您如何查看live db的内容?是通过数据库管理工具、PHPMyadmin还是网页@我使用的是phpmyadmin,我可以看到旧的导入数据很好,但是新的看起来很难看。当我在我的网页上查看时也是如此,所以你使用一个网页来判断你的数据库包含什么,正如Esailija在下面所说的,首先查看一个页面的编码标签,然后检查该确切文件的编码。。。确保它是utf8——使用一个好的IDE来检查这一点。无论如何,对于所有关于PHP/Mysql的utf8内容,请阅读以下内容:我将尝试再次导出和导入db如果这解决了您的问题,那么问题在于html页面的编码。粘贴一个
标题(“内容类型:text/html;charset=utf-8”)改为在顶部。@troelskn我这样做了,但没有任何用处。我不知道为什么,但这就是发生在我身上的事。
<?php
header("Content-Type: text/html; charset=utf-8");