| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > mysql + utf |
| Автор: od0201 10.5.2011, 12:06 |
| всем доброе время суток. открываю gmail, беру оттуда текст и вставляю в MySQL (поле utf8_general_ci), прогоняя текст через $dbh->quote() и как не странно все работает. Нооооооооооо...со временем заметил, что иногда не весь текст ложится корректно, а именно, когда в тексте присутствует умляут или что-то ему подобное (письма иностранцы пишут), весь текст начиная с этого символа пропадает. вставка вручную прямо в таблицу нормально сохраняет этот же текст. вывод текста в файл также корректен. Прокомментируйте, пожалуйста, мой случай. Заранее благодарен |
| Автор: Pfailed 10.5.2011, 12:43 |
| А что-нибудь типа $dbh->query("set names utf-8") делаете? |
| Автор: od0201 10.5.2011, 14:05 | ||||
было
попробовал убрать $dbh->do("set names utf8"); текст не пропадает, но русские буквы превратились в ???? поигрался немного и следующая комбинация привела к ожидаемому результату.
пока все работает, всем спасибо |
| Автор: od0201 10.5.2011, 16:12 | ||||
| НЕТ !!! потестил, вариант с $dbh->do("set names CP1250"); не устраивает русские буквы выводит как Ďđč˙ňíîăî ňĺáĺ äí˙. $dbh->do("set names CP1251"); умляуды коверкает $dbh->do("set names utf8"); все что не из латинского алфавита и все что идет после этого символа - удаляет пока остановился на таком варианте (когда текст пропадает), ищу выход, если есть идее, прокомментируйте
|
| Автор: arto 10.5.2011, 16:27 |
| perldoc DBD::mysql на предмет mysql_enable_utf8 |
| Автор: od0201 10.5.2011, 23:28 |
| $dbh->{'mysql_enable_utf8'} = 1; проблему не решает, скорее всего загвоздка в кодировке самого gmail. gmail сам не корректно работает с умляудами (или браузер тупит) и я думаю выставляет кодировку в зависимомти от региона пользователя |