Forum Webscript.Ru

Дизайн и Верстка => Всё о Html => Тема начата: FreeSpace от 29 Февраля 2004, 05:17:27

Название: Кодировки в многоязычной CMS
Отправлено: FreeSpace от 29 Февраля 2004, 05:17:27
Возник вопрос по организации заполнения данных многоязычной CMS. В принципе, вопрос касается всех существующих кодировок, но для простоты сведу его к частному случаю:
Интерфейс CMS выполнен на русском, соответствующий хидер отправляет сервер в заголовке HTTP-ответа эта же кодировка (windows-1251) прописана в мета-теге.
В самой CMS, кроме ввода русскоязычного контента, предусмотрен ввод немецкого. Но при вводе чисто немецких символов, таких как ä, при передаче серверу они превращаются в html entities. Как можно обойти эти грабли?
Название: Кодировки в многоязычной CMS
Отправлено: ondr от 29 Февраля 2004, 06:39:45
А может стоит посмотреть в сторону UTF-8? ;)
Название: Кодировки в многоязычной CMS
Отправлено: Макс от 29 Февраля 2004, 14:15:48
а аттрибут accept-charset здесь не поможет ?
http://www.w3.org/TR/1998/REC-html40-19980424/interact/forms.html#h-17.3

PS
сам не пробовал, просто предположение
Название: Кодировки в многоязычной CMS
Отправлено: FreeSpace от 29 Февраля 2004, 14:42:16
ondr
В следующем многоязычном проекте, быть может, так и сделаю.
А в этом... ну что сказать, провтыкал :(

Макс
Похоже, то что нужно!
Сегодня проверю и отпишу здесь.
Большое спасибо!
Название: Кодировки в многоязычной CMS
Отправлено: FreeSpace от 29 Февраля 2004, 18:36:25
Мда, результат не очень утешительный :(
Свою задачу я решил иначе, но из чистого интереса решил поэкспериментировать с предложенным Максом способом.
Сам параметр accept-charset, похоже, просто игнорируется браузерами.
Я пробовал указывать разные кодировки - результат один и тот же.
Вот скрипт, который я использовал для тестирования:
if (getenv(\'REQUEST_METHOD\') == \'GET\')
{
    header(\'Content-Type: text/html; charset=windows-1251\');
    ?>


    Тест кодировки
   
   


   
" method="post" accept-charset="de">
       

       
   



    }
else
{
    header(\'Content-Type: text/plain\');
    echo $_POST[\'data\'];
}
?>
Название: Кодировки в многоязычной CMS
Отправлено: Макс от 29 Февраля 2004, 19:21:02
Цитировать
FreeSpace:
accept-charset="de">

хмм, что-то сомневаюсь что немецкая кодировка называется "de"

Кстати, расскажи как решил проблему
Название: Кодировки в многоязычной CMS
Отправлено: ondr от 29 Февраля 2004, 19:48:21
FreeSpace
accept-charset="de", здесь запись кодировки такая же как и в "Content-type", т.е. для твоего варианта будет верно слудующее accept-charset="windows-1250"
Название: Кодировки в многоязычной CMS
Отправлено: Oak от 29 Февраля 2004, 20:22:36
windows-1252

http://www.klitschko-online.com/de/home/

а "de" - язык
Название: Кодировки в многоязычной CMS
Отправлено: FreeSpace от 29 Февраля 2004, 20:53:38
Цитировать
Макс:
хмм, что-то сомневаюсь что немецкая кодировка называется "de"

Я тоже сомневался, поэтому и полез смотреть список доступных кодировок вот сюда (http://www.iana.org/assignments/character-sets) (эта ссылка была в спецификации), потом нашел вот этот кусок:
Name: DIN_66003                                         [RFC1345,KXS2]
MIBenum: 24
Source: ECMA registry
Alias: iso-ir-21
Alias: de
Alias: ISO646-DE
Alias: csISO21German

Вот и попробовал его заюзать - не получилось.
А вот с windows-1250 и windows-1252 всё работает правильно! Вот только какая из них немецкая? :)

Цитировать
Макс:
Кстати, расскажи как решил проблему

Я её не совсем решил - скорее обошел. В базе данных так и храню html entities. Я понимаю, что это изврат, но так уж получилось. Заказчик "вспомнил" о необходимости поддержки немецкого уже после сдачи проекта, так что... Думаю, вы меня поняли.
А в будущем, чтобы так не заморачиваться, все многоязычные сайты буду делать в юникоде. Благо mysql с ним отлично работает, не говоря уже об xml.