Столкнулся с проблемой, нужно было научить node_import на drupal 6 кушать файлы в кодировки ANSI убив несколько часов, решил проблему радикально, в момент загрузки файла определяю если строки в не в UTF-8 то перегнать его в эту кодировку.
Для этого нужно сделать следующее,в файле node_import.admin.inc найти функцию
function node_import_add_form_submit_upload_file($form, &$form_state) { |
Заменить ее на следующую функцию
function node_import_add_form_submit_upload_file($form, &$form_state) { $validators = array(); $dest = node_import_directory(); if (($file = file_save_upload('file_upload', $validators, $dest, FILE_EXISTS_RENAME))) { drupal_set_message(t('New file %name uploaded to %path.', array('%name' => $file->filename, '%path' => $file->filepath))); file_set_status($file, FILE_STATUS_PERMANENT); $form_state['values']['fid'] = $file->fid; } /*Перекодировка файла если он в cp1251*/ $fp = fopen($file->filepath, 'r'); $file1 = ''; while (! feof($fp)) { $file1 .= fgets($fp, 4096); } $get = mb_detect_encoding($file1, array('utf-8', 'cp1251')); if($get != "UTF-8") { $file_utf = iconv("cp1251","UTF-8", $file1); $tmp_file = fopen($file->filepath, 'w+'); fwrite($tmp_file, $file_utf); fclose($tmp_file); $fp = fopen($file->filepath, 'r'); } /*\Перекодировка файла если он в cp1251\*/ node_import_add_form_submit_reload($form, $form_state); } |
Рад если кому то помог, рекомендуйте друзьям 😉