我有一个PHP脚本,必须将csv文件中的某些单词与mysql表元素进行比较。问题是显然csv文件没有在正确的编码中创建。
第一个错误是这样的: SQLSTATE [HY000]:一般错误:1267非法混合排序(latin1_general_ci,IMPLICIT)和(utf8_general_ci,COERCIBLE)操作'喜欢'
现在当我在变量上使用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文件而不会丢失重音吗?或转换我的数据库表?
注意:在notepad ++中,我的CSV文件是ANSI编码,当我将其转换为utf时,重音变成了奇怪的字符。