Кодировка текста

monk

Новичок
Кодировка текста

Какой функцией можно преобразовать текст в переменной для последующей отправке его в mySQL?
 

Yaguan

пилот
[m]convert_cyr_string[/m]

-~{}~ 30.11.04 17:09:

А это так необходимо для записи в БД?
 

Gas

может по одной?
monk
Текст в переменной можно "преобразовать" бесконечным количеством способов. Что конкретно тебе надо?
 

Фанат

oncle terrible
Команда форума
вообще-то, для "отправки в mySQL" текст вообще никак преобразовывать не надо
 

monk

Новичок
Мне нужно, что-бы на выходе из бызы текст был в кодировке UTF-8. Для проверки я пользуюсь функцией mb_detect_encoding($primer, "auto"); она показывает, что данные в базу записываются с разных броузеров в разных кодировках в UTF-8 и в ASCII. Как сделать, что-бы независимо от того в какой кодировке находятся в базе данные на выходе они были только в UTF-8 ?
 

coil

Guest
string iconv (string in_charset, string out_charset, string str)

Конвертирует строку string, кодированную в наборе символов in_charset, в строку, кодированную в наборе символов out_charset. Возвращает конвертированную строку или FALSE, если конвертация не удалась.
_________________________
для примера, из cp1251 в utf кодирует неправильно)))))))
 

SiMM

Новичок
Автор оригинала: coil
для примера, из cp1251 в utf кодирует неправильно)))))))
Может просто кто-то не понимает, что такое cp1251 и что такое UTF (кстати, такой кодировки, насколько мне известно, нет - UTF8 или UTF7 я бы ещё понял)?

-~{}~ 30.11.04 18:58:

Автор оригинала: monk
По моему это не то. Броузер ругается.
Наверно прям так и ругается - мужик, это не то.
 

coil

Guest
Originally posted by SiMM
Может просто кто-то не понимает, что такое cp1251 и что такое UTF (кстати, такой кодировки, насколько мне известно, нет - UTF8 или UTF7 я бы ещё понял)?

ну да ну да
не такой кодировки
но я,мало того что не понимаю что такое cp1251
так я еще и не понимаю наездов без объяснений.
Жду
 

Фанат

oncle terrible
Команда форума
скорее, у кого-то комплекс неполоноценности, и он принимает указание на ошибку за наезд
 

nut

Новичок
как ты отправляешь данные? сперва это скажи, а я например пересылал вообще немецкий и ничего схавал мускул!
Скорее всего когда ты отправляешь, у тебя стоит не та кодировка в БРАУЗЕРЕ!! если поменять то отошлет нужный текст нормально.
 

monk

Новичок
Ты имеешь ввиду, что charset=UTF-8 влияет на данные, которые из формы попадают в базу?
 

nut

Новичок
Ребята, я Вам скажу честно, как запаренный в свое время подобной траблой: проблему может вызвать только отправление многобайтных кодировок(UTF-16), все остальное втыкается без особых проблем!!!
 

SiMM

Новичок
nut, вообще-то, UTF8 и UTF7 тоже многобайтные кодировки, однако, я подозреваю, они вами включаются в число тех, что "втыкается без особых проблем"? ;)
 

monk

Новичок
Я заматался с этой кодировкой, нигде не могу найти ответ на свой вопрос.
Давайте еще раз разберемся. Нужно, чтобы все данные из базы выводились в utf-8. И если пишем в форму в кодировке utf она так из базы и выводится в utf, если не пользоваться функциями перекодировки. Надо ли делать, чтобы в базу с формы текст записывался с одной кодировкой? Т.е.,вы наверное не поняли, wap сайт, с разных мобиЛ, броузеров эмулирующих телефон думаю записывается в utf-8, а скажем с оперы наверное в win-1251. Так вот получается, надо сделать так, чтобы конвертился только win-1251, а utf оставить. Может я не корректно все это изложил, но я по ходу сам уже запутался. Все функции наверное перепробовал, iconv выдает ошибку. Может хост не поддерживает...В header везде прописываю utf-8. Как поступить?
 

SiMM

Новичок
Автор оригинала: monk
Надо ли делать, чтобы в базу с формы текст записывался с одной кодировкой?
Надо.
Так вот получается, надо сделать так, чтобы конвертился только win-1251, а utf оставить.
Смотря в какой кодировке ты собираешься хранить данные в базе. Если база поддерживает работу с UTF-8 и у тебя есть необходимость в выводе текстов на нескольких языках - то храни данные в UTF-8, тогда имеет смысл и обычную, не wap-страничку, выводить в UTF-8 (и приходить тебе всё должно уже не в Windows-1251, а в UTF-8), если база не поддерживает мультибайтных кодировок, то имеет смысл хранить данные в Windows-1251 и преобразовывать их в UTF-8 при выводе на wap-сайт и в Windows-1251 при вводе с wap-ресурса.
но я по ходу сам уже запутался. Все функции наверное перепробовал, iconv выдает ошибку. Может хост не поддерживает...
Потому что программист - это не шаман, танцующий замысловатые танцы с кодом - это человек, который прежде всего понимает, что он делает. Понимает каждую строчку кода.
 

monk

Новичок
Значит надо на страничке ввода текста в форму делать конверт в utf, но какой функцией, ведь в форму данные будут записываться с разными кодировками? А затем на стр. вывода ни каких конвертов не делать, так?
 

SiMM

Новичок
В базу данные нужно класть в одной кодировке, независимо от того, откуда они там появляются. Выводить данные нужно в той кодировке, которая необходима клиенту, при получении данных от клиента они будут в той кодировке, в которой ты укажешь либо в параметрах страницы (charset Content-Type), либо в той кодировке, которую ты укажешь в свойстве формы.
Ну что тут может быть непонятным? Проще пареной репы.
 

monk

Новичок
SIMM, а какие функции работают и с windows-1251 и с utf-8 ?
Т.е. то что в header прописана кодировка, она распространяется и на данные записанные в форму? т.е. если в header стоит допустим utf, то конвертить не надо из формы в базу.
 

SiMM

Новичок
Кроме хидера разумно также указывать кодировку в HTML, дабы сохранённая локально страничка выдавалась пользователю в правильной кодировке без всяких хитрых телодвижений со стороны пользователя (<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">)
По умолчанию, кодировка, выбранная браузером для отображения (впрочем, это зависит от логики работы браузера - могу ошибаться) будет кодировкой, в которой отправляются данные на сервер, если иное поведение не указано в форме (<form ... accept-charset="text/html; charset=utf-8">).
Для перекодировки могу порекомендовать пользоваться [m]iconv[/m], хотя сам не гнушаюсь и самописными функциями (думаю, мне такая роскошь вполне позволительно - я-то понимаю, что это такое изнутри ;) ).
 
Сверху