Здравствуйте, ребят прошу помощи, у меня такая проблема. Создаю файл test.xls, в котором на русском языке заполняю некоторые строки, а так же заполняю цифрами, английскими словами. С помощью PHP скрипта я достаю строки из xls файла и вставляю в БД. Но проблема с кодировкой. В БД вообще на месте русского текста он отсутствует, а английский и цифры вставляются. На страницы же русский текст выводится таким образом: "�������� ���". В какой кодировке текст в xls файле я не знаю. В БД же кодировка UTF - 8. Пробовал после доставания строки из БД конвертировать ее такой функцией mb_convert_encoding( $data[$i][1],'windows-1251','utf-8'), но не получается. Прошу помощи, как это можно решить ?
Неа, я вообще использую сторонний модуль, и как он работает хз, если только это выход,что полезть и там конвертировать, то придется лезть, иначе варианты есть ? Вот как я использую этот класс: PHP: // Создаем массив данных из Exel $data_arr = new PHPExcel_xls; $data = $data_arr->xls_array( $file );
У меня подозрение что кодировка у xls файла win-1251, а ты добавляешь в БД, где utf-8. На том, шаге, где ты вставляешь в БД, конвертируй строки из win-1251 (ну или смотря какая там) в utf-8
При вставке в БД пробовал вот таким вот образом: PHP: mb_convert_encoding( $data[$i][1],'windows-1251','utf-8') Не помогает. Мб в xml файле какая - то специфическая кодировка, узнать бы ее точно, что б проверить сработает ли, если эту кодировку поставить в функцию mb_convert_encoding().
В PHP есть ф-ция определения кодировки: PHP: setlocale(LC_CTYPE, 'ru_RU'); $s = mb_detect_encoding($_REQUEST[$key]);//Определяем кодировку $new_key = iconv($s, 'CP1251//TRANSLIT', $_REQUEST[$key]);//Декодируем так-то.