Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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_Encoding - Fatal编程技术网

PHP和MySQL编码和奇怪的符号

PHP和MySQL编码和奇怪的符号,php,mysql,encoding,Php,Mysql,Encoding,我从一个网站接收ISO-8859-2中的网站数据,然后将其转换为UTF-8(在MySQL中也用作编码),并进行一些修改和存储数据 当我打印数据时,一切似乎都很好。。。当我将数据存储到表中并从表中打印出来时,一切都很好。。。但是当我比较新收到的数据并与mysql中存储的数据进行比较时,尽管数据是相同的,但我总是找不到匹配项。所以我查了DB。。当我用DB打开数据时,我看到在结尾或中间有一个符号…例:Ä、‡等 有什么想法吗 更新:我使用InnoDB存储引擎来启用事务。。精确的DB编码是UTF8\u G

我从一个网站接收ISO-8859-2中的网站数据,然后将其转换为UTF-8(在MySQL中也用作编码),并进行一些修改和存储数据

当我打印数据时,一切似乎都很好。。。当我将数据存储到表中并从表中打印出来时,一切都很好。。。但是当我比较新收到的数据并与mysql中存储的数据进行比较时,尽管数据是相同的,但我总是找不到匹配项。所以我查了DB。。当我用DB打开数据时,我看到在结尾或中间有一个符号…例:Ä、‡等

有什么想法吗


更新:我使用InnoDB存储引擎来启用事务。。精确的DB编码是UTF8\u GENERAL\u CI

我得到了ISO-8859-2输入数据

首先,我用以下符号替换了奇怪的符号:

$data = str_replace(chr(194), "", $data);

chr() uses ASCII code to search sign... 
下一步是将数据转换为UTF-8编码

$data = iconv('ISO-8859-2', 'UTF-8//TRANSLIT', $data);
我收到的字符串已转换字符,但同样的符号不知何故又出现了,我也这样做了

$data = str_replace(chr(194), "", $data);
再次。。。之后我做了:

$data = @iconv('UTF-8', 'UTF-8//IGNORE', $data);
这给了我清洁的UTF-8,即使还有一些奇怪的字符…@一开始是为了避免在出现故障时抛出错误

我相信这确实是一个特殊的案例——我很长一段时间都在处理外部数据,没有像这样的案例,但希望有一天有人会需要它


谢谢大家的帮助和合作。。。没有社区的支持,我无法解决这个问题!谢谢

你用PHP做修改吗?有没有可能直接在MySQL中进行这样的修改呢?嗨,我试着直接存储到DB,然后进行比较,结果是一样的:/@deceze发布了一个链接,其中有一些可能解决您的问题的方法。让我们知道它是否有帮助。嗨,是的,目前我正在尝试这样做。。。别担心,我会给你反馈的