Forum Webscript.Ru
Дизайн и Верстка => Всё о Html => Тема начата: FreeSpace от 29 Февраля 2004, 05:17:27
-
Возник вопрос по организации заполнения данных многоязычной CMS. В принципе, вопрос касается всех существующих кодировок, но для простоты сведу его к частному случаю:
Интерфейс CMS выполнен на русском, соответствующий хидер отправляет сервер в заголовке HTTP-ответа эта же кодировка (windows-1251) прописана в мета-теге.
В самой CMS, кроме ввода русскоязычного контента, предусмотрен ввод немецкого. Но при вводе чисто немецких символов, таких как ä, при передаче серверу они превращаются в html entities. Как можно обойти эти грабли?
-
А может стоит посмотреть в сторону UTF-8? ;)
-
а аттрибут accept-charset здесь не поможет ?
http://www.w3.org/TR/1998/REC-html40-19980424/interact/forms.html#h-17.3
PS
сам не пробовал, просто предположение
-
ondr
В следующем многоязычном проекте, быть может, так и сделаю.
А в этом... ну что сказать, провтыкал :(
Макс
Похоже, то что нужно!
Сегодня проверю и отпишу здесь.
Большое спасибо!
-
Мда, результат не очень утешительный :(
Свою задачу я решил иначе, но из чистого интереса решил поэкспериментировать с предложенным Максом способом.
Сам параметр accept-charset, похоже, просто игнорируется браузерами.
Я пробовал указывать разные кодировки - результат один и тот же.
Вот скрипт, который я использовал для тестирования:
if (getenv(\'REQUEST_METHOD\') == \'GET\')
{
header(\'Content-Type: text/html; charset=windows-1251\');
?>
Тест кодировки
}
else
{
header(\'Content-Type: text/plain\');
echo $_POST[\'data\'];
}
?>
-
FreeSpace:
accept-charset="de">
хмм, что-то сомневаюсь что немецкая кодировка называется "de"
Кстати, расскажи как решил проблему
-
FreeSpace
accept-charset="de", здесь запись кодировки такая же как и в "Content-type", т.е. для твоего варианта будет верно слудующее accept-charset="windows-1250"
-
windows-1252
http://www.klitschko-online.com/de/home/
а "de" - язык
-
Макс:
хмм, что-то сомневаюсь что немецкая кодировка называется "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.