У меня есть база данных mysql с некоторыми китайскими ключевыми словами, которые мне нужно сравнить с некоторыми ключевыми словами в CSV-файле с использованием PHP.
Кажется, у меня проблема с кодировкой, когда я сравниваю 2 ключевых слова, которые, как я знаю, совпадают (с китайскими иероглифами), скрипт говорит, что они разные.
Я использую «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.
Мне удалось удалить его с помощью этой функции
private function rmBOM($string) {
if(substr($string, 0,3) == pack('CCC',0xef,0xbb,0xbf)) {
$string=substr($string, 3);
}
return $string;
}