Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.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&;UTF8问题与阿拉伯语_Php_Mysql - Fatal编程技术网

Php mysql&;UTF8问题与阿拉伯语

Php mysql&;UTF8问题与阿拉伯语,php,mysql,Php,Mysql,对于utf8和带有MySQL数据库的阿拉伯语来说,这可能看起来像是一个类似的问题,但我搜索了结果,没有发现任何问题 我的数据库内控设置为utf8\u general\u ci, 默认情况下,我的php页面编码为ansi 数据库中的阿拉伯语显示为:ÌñÈ 但我把它改成了utf8, 如果我向数据库添加新输入,数据库中的阿拉伯语显示为: 我不在乎它在数据库中如何显示,只要它在php页面中正常显示, 将php页面更改为utf8后,如果按原样显示结果,则在添加输入而不是检索输入时。 但是在将页面编码转换为

对于utf8和带有MySQL数据库的阿拉伯语来说,这可能看起来像是一个类似的问题,但我搜索了结果,没有发现任何问题

我的数据库内控设置为utf8\u general\u ci, 默认情况下,我的php页面编码为ansi 数据库中的阿拉伯语显示为:ÌñÈ

但我把它改成了utf8, 如果我向数据库添加新输入,数据库中的阿拉伯语显示为:

我不在乎它在数据库中如何显示,只要它在php页面中正常显示, 将php页面更改为utf8后,如果按原样显示结果,则在添加输入而不是检索输入时。
但是在将页面编码转换为uft8之前添加的旧数据如下所示:�����

我尝试了很多方法来解决这个问题,比如在ssh和php中使用
iconv
utf8\u decode()
utf8\u encode()
。。而且更多,但没有起作用

所以我希望你能给我一个解决方案


更新::主要目标通过从php页面中以旧编码“windows-1256”检索数据而不是从ssh中更新数据来解决


只剩下一个问题::

我有一些文本是作为“windows-1256”插入的,另一些文本是作为“utf-8”插入的,所以现在windows编码被转换为utf-8,工作正常,但是原始的utf-8也被转换为不可读的内容,在php中使用iconv,使用旧的页面编码


那么,有没有办法检查什么编码是原始编码以进行转换?

在创建数据库连接后,在运行任何其他查询之前,尝试运行查询
设置名称utf8

例如:

$dbh = new PDO('mysql:dbname='.DB_NAME.';host='.DB_HOST, DB_USER, DB_PASSWORD);
$dbh->exec('set names utf8');

正如我所说,我的数据库内控设置为utf8\u general\u ci。问题是如何显示由ANSI PHP页面插入的旧数据。您好,您对此问题有什么解决方案吗?对于您的旧数据,请以旧格式创建一个备份表,然后使用您的PHP代码将其重新输入到新表(如果您有旧表作为备份),并且旧PHP代码可以以某种方式读取它。然后,即使它显示为:ØÙÙÙÙ†,您也可以尝试通过php将它们重新插入到新表中。旧的php页面只能读取ANSI编码的旧代码,而新页面将正确读取utf8,因此,如果我进行更新,它必须来自新页面才能被读取为utf8,但在执行此操作时,我将留下这样的内容:ظ…ظᮾظطظ..您可以使用旧的php页面正确读取它,然后将其转换为utf8,然后将其导出到utf-8SQL查询文本文件。然后,您可以手动运行该查询到db,或者让您的UTF8 php运行它。。我的数据库超过70mb。你说的不仅仅是一个页面转换过程,正如我所见,我不知道如何使用这样的数据库。你有办法做到这一点吗?