Автор Тема: Кодировки в многоязычной CMS  (Прочитано 4642 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
Кодировки в многоязычной CMS
« : 29 Февраля 2004, 05:17:27 »
Возник вопрос по организации заполнения данных многоязычной CMS. В принципе, вопрос касается всех существующих кодировок, но для простоты сведу его к частному случаю:
Интерфейс CMS выполнен на русском, соответствующий хидер отправляет сервер в заголовке HTTP-ответа эта же кодировка (windows-1251) прописана в мета-теге.
В самой CMS, кроме ввода русскоязычного контента, предусмотрен ввод немецкого. Но при вводе чисто немецких символов, таких как ä, при передаче серверу они превращаются в html entities. Как можно обойти эти грабли?
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
Кодировки в многоязычной CMS
« Ответ #1 : 29 Февраля 2004, 06:39:45 »
А может стоит посмотреть в сторону UTF-8? ;)
0 OK, 0:1

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Кодировки в многоязычной CMS
« Ответ #2 : 29 Февраля 2004, 14:15:48 »
а аттрибут accept-charset здесь не поможет ?
http://www.w3.org/TR/1998/REC-html40-19980424/interact/forms.html#h-17.3

PS
сам не пробовал, просто предположение
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
Кодировки в многоязычной CMS
« Ответ #3 : 29 Февраля 2004, 14:42:16 »
ondr
В следующем многоязычном проекте, быть может, так и сделаю.
А в этом... ну что сказать, провтыкал :(

Макс
Похоже, то что нужно!
Сегодня проверю и отпишу здесь.
Большое спасибо!
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
Кодировки в многоязычной CMS
« Ответ #4 : 29 Февраля 2004, 18:36:25 »
Мда, результат не очень утешительный :(
Свою задачу я решил иначе, но из чистого интереса решил поэкспериментировать с предложенным Максом способом.
Сам параметр accept-charset, похоже, просто игнорируется браузерами.
Я пробовал указывать разные кодировки - результат один и тот же.
Вот скрипт, который я использовал для тестирования:
<?php
if (getenv(\'REQUEST_METHOD\') == \'GET\')
{
    header(\'Content-Type: text/html; charset=windows-1251\');
    ?>
<html>
<head>
    <title>Тест кодировки</title>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    <meta http-equiv="Content-Language" content="ru" />
</head>
<body>
    <form action="<?=$_SERVER[\'PHP_SELF\']?>" method="post" accept-charset="de">
        <input type="text" name="data" />

        <input type="submit" />
    </form>
</body>
</html>
    <?php
}
else
{
    header(\'Content-Type: text/plain\');
    echo $_POST[\'data\'];
}
?>
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Кодировки в многоязычной CMS
« Ответ #5 : 29 Февраля 2004, 19:21:02 »
Цитировать
FreeSpace:
accept-charset="de">

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

Кстати, расскажи как решил проблему
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
Кодировки в многоязычной CMS
« Ответ #6 : 29 Февраля 2004, 19:48:21 »
FreeSpace
accept-charset="de", здесь запись кодировки такая же как и в "Content-type", т.е. для твоего варианта будет верно слудующее accept-charset="windows-1250"
0 OK, 0:1

Оффлайн Oak

  • Дерево
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1481
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Кодировки в многоязычной CMS
« Ответ #7 : 29 Февраля 2004, 20:22:36 »
windows-1252

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

а "de" - язык
[основной броузер - SeaMonkey] Netscape Communicator 4 - is the best :) // see sources

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
Кодировки в многоязычной CMS
« Ответ #8 : 29 Февраля 2004, 20:53:38 »
Цитировать
Макс:
хмм, что-то сомневаюсь что немецкая кодировка называется "de"

Я тоже сомневался, поэтому и полез смотреть список доступных кодировок вот сюда (эта ссылка была в спецификации), потом нашел вот этот кусок:
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.
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28