|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Artem Chuprina 2:5020/400 24 Nov 2001 17:24:30 To : Dmitry Kniginin Subject : Re: Кодиpовка -------------------------------------------------------------------------------- Здравствуй, Dmitry Kniginin. DK> Как осyществить сохpанение данных из фоpм в БД в одной кодиpовке, если DK> данные из фоpм пеpедаються в pазных кодиpовках (напpимеp KOI8, WIN-1251) DK> То есть если в кодиpовке WIN-1251 было пеpеданно "Слово", то чтобы по DK> запpосy в кодиpовке KOI8R "Слово" было выданны соответствyющие данные. DK> Где копать? Какие фyнкции позволяют спpавиться с этой пpоблемой? DK> Пеpекодиpовкy делать вpyчню или это за меня делает Apache? Интеpесyют DK> только методы пpавильные дающие 100% pезyльтат. К сожалению, 100% гарантий, что браузер отдал тебе данные в нужной кодировке, нет. И как правило (исключение - lynx) они не признаются, в какой кодировке они отправили форму. Это реальность, данная нам в ощущениях. Эмпирика, которой пользуется русский апач, если ему разрешить перекодировку, состоит в том, что в норме браузер отдает форму в той кодировке, в которой ему выдали страницу. Исключение - какие-то оперы. Поэтому максимум, что ты можешь - положиться на эту эмпирику, может быть, сделав исключение для опер. Далее, если у тебя данные приходят то так, то эдак, то скорее всего (исключение себе представляю, но если бы оно у тебя было, то либо ты сам бы знал, либо в инструкции было бы написано) у тебя русский апач, которому запрещено перекодировать входящие формы (обычно перекодировку отключают для multipart форм, но я видел варианты и с полным отключением). А значит, у тебя есть документированные у него переменные среды с подстрокой CHARSET, содержащие кодировку сервера и главное, кодировку клиента (сиречь ту кодировку, в которой мы клиенту собираемся данные отдавать, и в которой, согласно вышеизложенному, он нам, наверное, данные отдал). Я не помню, которую как зовут. Как перекодировать из кодировки клиента в кодировку, в которой ты с базой работаешь, объяснять? -- Artem Chuprina RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/358.49, ICQ: 13038757 /итд/почтопосылалка.нстрк (c) Отправлено через сервер Talk.Ru - http://www.talk.ru --- ifmail v.2.15dev5 * Origin: Talk.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/635974e6a09d.html, оценка из 5, голосов 10
|