![]() |
Запуск php скрипта через планировщик заданий Windows. Проблемы с кодировкой.
Всем привет!
Мне нужно парсить xml файл, полученный с сайта каждый час и данные записывать в БД. Написала скипт на php, на сервере он работает, проблем нет. Назначила его в задание через планировщик Windows. Скрипт выполняется, но в БД данные записываются в неверной кодировке, вместо русских букв - абракодабра. В xml данные в UTF-8, в БД данные в cp1251. Перед записью данных делаю конвертацию : PHP код:
|
А в Windows есть cp1251? Попробуйте 'Windows-1251'.
|
Изменила. Не помогает(
|
Сам файл php у меня в кодировке UTF-8 без BOM.
правильно? |
попробуйте
PHP код:
|
Получилось!!!! )))))
Только почему то ругается, что не определена кодировка, но работает. PHP код:
PHP Warning: mb_convert_encoding(): Unable to detect character encoding k= А если пишу, как Вы показали, то не ругается, но кодировка не меняется. PHP код:
k=UTF-8 |
изначально то в $xml->{'family-name'} какая кодировка?
PHP код:
|
Оказывается дело не в том.
Если закоментировать строчки с преобразованием данных, то достаточно одного iconv. Теперь вопрос у меня появился? А как мне данные преобразовать? PHP код:
Цитата:
|
строковые функции PHP работают исходя из текущей локали
http://docs.php.net/manual/ru/function.setlocale.php PHP код:
и http://docs.php.net/manual/ru/functi...nvert-case.php с MB_CASE_TITLE (вместо ucfirst) внизу там примеры есть. |
А почему я всегда в БД записывала данные в cp1251, а теперь работает и в cp866?
|
zvezda_t, если локаль не соответствует кодировке текста, то строковые функции могут работать некорректно. Используйте mb_-функции, чтобы не зависеть от локали.
|
Цитата:
Мне не понятно почему в БД данные записываются корректно как в кодировке cp1251 так и в cp866. Разве так возможно? |
Имхо с однобайтными кодировками так и будет (поля таблицы и текста). Если кодировка поля таблицы многобайтная (UTF и тд), то однобайтный текст имхо вставится некорректно, и наоборот...
|
Время: 23:16. |
Время: 23:16.
© OSzone.net 2001-