1

我有一个 php 脚本,它必须将 csv 文件中的一些单词与 mysql 表元素进行比较。问题是,显然 csv 文件不是在正确的编码中创建的。

第一个错误是这样的: SQLSTATE[HY000]: General error: 1267 Illegal mix of collat​​ions (latin1_general_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'like'

现在当我utf_encode在变量上使用时,错误消失了,但它没有在 mysql 数据库中找到我的变量。

需要明确的是,我的 csv 文件中有几个重音词,我无法更改。

我在我的数据库中使用latin1字符集和latin1_general_ci排序规则。

另一个观察结果是我正在使用以下代码来获取文件中的信息:

if (($handle = @fopen("../arquivos/atualização/$name", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {

我可以以某种方式在 php 中转换我的 csv 文件而不会丢失口音吗?或转换我的数据库表?

注意:在记事本 ++ 中,我的 CSV 文件采用 ANSI 编码,当我将其转换为 utf 时,重音符号会变成奇怪的字符。

4

0 回答 0