Проблема с перекодировкой

Прислано: Scarrr

вт, 30/12/2008 - 06:35

Другие статьи по теме:

Здравствуйте, столкнулся с проблемой перекодировки из кодировки Друпала utf-8 в win-1251.

Мне нужно перекодировать переменные, например $node->title в win-1251, иначе получаются одни закорючки вместо букв :(

Пытаюсь использовать функцию inconv

$title1 = iconv("utf-8", "windows-1251", $node->title); - и потом уже работать с этими данными через переменную $title1, но так вообще ничего не получается сделать - программа вообще никак не работает.

Подскажите пожалуйста, как нужно правильно.

Заранее спасибо.

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано glu2006 в вт, 30/12/2008 - 07:27.

Где закорючки то получаются? насколько я помню все браузеры и почтовые проги адекватно воспринимают кодировку utf-8


Опубликовано Scarrr в вт, 30/12/2008 - 08:28.

мне нужно передать эти переменные методом ПОСТ - вот тут то и получаются закорючки


Опубликовано Scarrr в вт, 30/12/2008 - 08:33.

неужели я бы спрашивал, если бы у меня всё адекватно вопринималось


Опубликовано Scarrr в вт, 30/12/2008 - 08:42.

$title1 = mb_convert_encoding($node->title, "UTF-8", "windows-1251"); - попробовал вот эту перекодировку - тоже ничего не помогает, что ж такое, как эти друпаловские переменные вообще перекодировываются????


Опубликовано glu2006 в вт, 30/12/2008 - 08:42.

Передать куда? на сторонний сайт? в другую функцию? на марс? Где и что не так отображется?
Не играть же всем в угадайку, что куда вы посылаете и для чего. )))
Напишите нормально про проблему, тогда ее возможно легче будет решить.


Опубликовано Scarrr в вт, 30/12/2008 - 08:54.

я передаю данные вот такой функцией
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

где в переменной $data частично используются друпаловские переменные

$data = array( 'title' => $node->title,
'begin_cost' => $node->sell_price,
'cost_type' => 'BYB',
'city_id' => '1',
);

вот таким вот образом - только надеюсь вы меня не будете принимать за хакера, если я использую cURL.

этот скрипт прекрасно работает и всё передаёт как надо, когда я написал его в кодировке CP1251 и сохранил его в корне сайта с расширением .php

но проблема встроить его в Великий и могучий Друпал, когда я написал этот код в хуке hook_insert() - все переменные перекодировываются и получаются одни кракозяблы. Ведь все друпаловские переменные только в кодировке utf8


Опубликовано Scarrr в вт, 30/12/2008 - 08:55.

вот, если знаете как мне перекодировать переменные Друпала - подскажите пожалуйста


Опубликовано Scarrr в вт, 30/12/2008 - 08:55.

ЗЫ кракозяблы получаются именно на том сайте, куда я всё это передаю


Опубликовано Scarrr в вт, 30/12/2008 - 08:57.

или подскажите, как мне из хука запустить на выполнение этот скрипт - но опять же, тут проблема исключительно в переменных - переменные то ведь всё равно нужно получить из Друпала - и в нём то как раз и вся загвоздка


Опубликовано glu2006 в вт, 30/12/2008 - 10:03.

Как вариант попробовать сохранить сторонний скрипт в утф8 затащить его в модуль друпли или просто если уже есть свой модуль заинклудить его в модуле отдать ему данные на обработку в утф8 он их соберет до кучи в единое целое и на выход когда будет отдавать перекодить в cp1251 или win-1251 хотя хз как он себя поведет в таком случае может также и отдаст кракозяблы, а может и нет )).
т.е. сторонний скрипт отрабатывает с данными в кодировке друпала, а вот отдает их предварительно перекодив в ту кодировку в которую надо.


Опубликовано Scarrr в вт, 30/12/2008 - 16:20.

так ведь проблема в том, что модули друпала (файлы с расширением .module) тоже ведь сохранены в кодировке cp1251 (то есть в той же кодировке, что и мой скрипт)

а своего модуля у меня нет, у меня только скрипт - я пытаюсь просто вставить код скрипта в файл .module, ну и понятно скрипт должен использовать друпаловские переменные для работы своей. И у меня нет никакой обработки - мне просто нужно передать друпаловские переменные, пробую их перекодировать перед отправкой, но ничего хорошего не получается :((


Опубликовано glu2006 в ср, 31/12/2008 - 10:09.

????? они не должны быть в кодировке win-1251 они должны быть сохранены в кодировке UTF-8


Новое на сайте