Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Базы Данных > Кодируется e-mail при занесении в БД |
Автор: Poveritov 17.7.2015, 13:37 |
Подскажите, в чем проблема: есть строка $string = "e-mail:[email protected]|status:user:Имя пользователя:Иван", вставляю это строку в базу данных столбец для данной записи имеет кодировку utf8_general_ci В результате все заносится корректно, кроме адреса электронной почты. В итоге запись в бд выглядит следующим образом : e-mail:gkv ... |status:user:Имя пользователя:Иван |
Автор: ksnk 17.7.2015, 13:44 |
Откуда берется строка? Из пользовательского броузера? Можно перед сохранением сделать строке html_entity_decode , но правильнее - понять в каком месте кодируется емейл, и понять, надо ли его там кодировать, чтобы не раскодировать чего лишнего... |
Автор: Poveritov 17.7.2015, 13:57 |
e-mail берется со страницы с кодировкой windows-1251. Но в скрипте я выполняю функцию Incov (из w1251 в utf8) перед работой со строкой. Мне не понятен тот факт, что все данные в строке берутся из одной и той же страницы, но заносится все корректно, кроме адреса e-mail |
Автор: Poveritov 17.7.2015, 14:18 |
проверил с помощью функции mb_detect_encoding сам e-mail [email protected] в кодировке ACII, но почему -то не получается его преобразовать в UTF-8. Пытался двумя функциями mb_convert_encoding и iconv, но без результата. |
Автор: ksnk 17.7.2015, 15:52 |
Poveritov, Это результат работы функции escape. Для кодировки cp1251 получается довольно неудобоваримая штука. Можно поискать реализации unescape на php, или написать самому. Добавлено через 7 минут и 9 секунд http://ideone.com/aKQas2 |