Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Общие вопросы > Проблемы с кодировкой |
Автор: mario315 19.1.2010, 13:57 | ||||||||
Задача необходимо брать материал из одной базы данных(DB1) и занести во вторую базу данных(DB2) через html-форму кодировки DB1 - utf8_general_ci DB2 - cp1251_general_ci кодировка страницы формы - cp1251 пробовал так
пробовал
в итоге в BD2 получается что-то вроде
что тут можно сделать |
Автор: krypt3r 19.1.2010, 14:20 | ||
|
Автор: mario315 19.1.2010, 14:26 |
krypt3r, так получаются ???? |
Автор: shamber 19.1.2010, 14:46 |
mario315, а проверить? |
Автор: mario315 19.1.2010, 15:47 |
shamber, проверил. В базу данных заносится ??? |
Автор: Vaneska 19.1.2010, 17:44 | ||
Можно попробовать сделать так:
Т.е. идея в том, чтобы мускул сам перекодировал обе бд в одну кодировку. |
Автор: mario315 19.1.2010, 19:45 | ||
Если выводить значения $val1 и $val2 на печать, кодировка 'cp1251'; Если вбивать значения вручную в форму, то тоже с кодировкой все нормально. Путаница происходит при передачи значений из perl-скрипта к форме
, но ума не приложу, что тут может быть не так |
Автор: LuxInTenebris 19.1.2010, 19:50 | ||
При чтении/записи БД через DBI для хранения данных Perl использует свою внутреннюю кодировку (Unicode), независимо от той, что стоит у вас в самой БД. Так что значения $val1 и $val2 после чтения будут именно в ней. С помощью Encode берёте и кодируете их в кодировку для вашей HTML формы:
И вообще, имхо, для простой отправки данных лучше использовать LWP::UserAgent вместо WWW::Mechanize. Задайте только правильный HTTP метод и имена полей формы. |
Автор: mario315 19.1.2010, 20:32 | ||
пример можно:
так, вроде, работает ![]() Добавлено через 6 минут и 4 секунды LuxInTenebris, спасибо за пинок в нужном направлении ![]() |
Автор: shamber 19.1.2010, 21:56 |
а еще есть use encoding; |
Автор: LuxInTenebris 19.1.2010, 22:39 | ||||
mario315, ваш код
можно легко сократить до одной строки
|
Автор: mario315 19.1.2010, 22:44 |
shamber, попробовал use encoding 'cp1251'; - результат каракули ![]() |
Автор: mario315 19.1.2010, 23:00 |
LuxInTenebris, все отлично работает. Спасибо большое. |
Автор: mario315 20.1.2010, 21:16 | ||
А как с помощью LWP отправить файл? Вот так работает
|