我有一个 php 脚本,它必须将 csv 文件中的一些单词与 mysql 表元素进行比较。问题是,显然 csv 文件不是在正确的编码中创建的。
第一个错误是这样的: SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (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 时,重音符号会变成奇怪的字符。