我有一个带有一些中文关键字的mysql数据库,我需要使用PHP与CSV文件中的某些关键字进行比较。
我似乎对编码有问题,当我比较我知道的两个关键字(中文字符)时,脚本说它们是不同的。
我在数据库脚本的开头使用“SET NAMES utf8”。 表上关键字字段的排序规则是utf8_bin。
脚本上的我也用过
mb_internal_encoding("UTF-8");
header('Content-Type: text/xml, charset=UTF-8; encoding=UTF-8');
我用
读取了CSV文件 $data = fgetcsv($handle, 1000, ",")) !== FALSE
我的比较线就像这样
$database_keyword == CSV_keyword
关于CSV文件,我使用notepad ++尝试更改编码,但仍无效。
非常感谢。
编辑:我在Windows 7上
编辑:添加解决方案 它可能会帮助那里的人,我发现我的问题是由csv文件中包含在字符串中的BOM引起的。 我设法通过使用此功能
删除它 private function rmBOM($string) {
if(substr($string, 0,3) == pack('CCC',0xef,0xbb,0xbf)) {
$string=substr($string, 3);
}
return $string;
}
答案 0 :(得分:0)
我在Windows上的经验有限,因为我经常在Linux上工作,但我曾参与处理不同字符集(编码)的集成项目。