Установка кодировки символов в форме отправляет для Internet Explorer

59
задан Community 23 May 2017 в 12:09
поделиться

8 ответов

Кажется, что это не может быть сделано, не, по крайней мере, с текущими версиями IE (6 и 7).

форма поддержек IE приписывает принимать-набор-символов, но только если его значение является 'utf-8'.

решение состоит в том, чтобы изменить сервер для создания кодирования 'ISO-8859-1' для страницы, которая содержит форму.

6
ответ дан Juha Syrjälä 24 November 2019 в 18:30
поделиться

Если Вы имеете доступ к серверу вообще, преобразовываете его обработку в UTF-8. Искусство представления non-UTF-8 формы является длинной и жаль историей; этот документ о формах и i18n может представлять интерес. Я понимаю, что Вы, кажется, не заботитесь о международной поддержке; можно всегда преобразовывать данные UTF-8 в объекты HTML, чтобы удостовериться, что это остается латинским 1.

2
ответ дан Edward Z. Yang 24 November 2019 в 18:30
поделиться

Я вполне уверен, это не будет возможно с более старыми версиями IE. Перед эти accept-charset атрибут был создан, не было никакого пути к form элементы для определения, какую кодировку символов они приняли, и лучшее, которое могли сделать браузеры, принимают кодирование страницы, в которой находится форма, сделает.

немного грустно, что необходимо знать, какое кодирование использовалось - в наше время мы будем ожидать, что наши веб-платформы будут заботиться о таких деталях невидимо и представлять текстовые данные приложению, поскольку Unicode представляет в виде строки, уже декодируемый...

0
ответ дан pdc 24 November 2019 в 18:30
поделиться

Похож на Microsoft, знает принимать-набор-символов , но их документ не говорит, на которую версию это начинает работать...
Вы не говорите ни одному, в которых версиях браузера Вы протестировали его.

0
ответ дан PhiLho 24 November 2019 в 18:30
поделиться

Я, кажется, помню, что Internet Explorer запутывается, если кодирование принимать-набора-символов не соответствует кодированию, определенному в заголовке типа контента. В Вашем примере Вы утверждаете, что документ отправляется как UTF-8, но хотят форму, отправляет в ISO-8859-1. Попытайтесь соответствовать тем и посмотрите, решает ли это Вашу проблему.

0
ответ дан warp 24 November 2019 в 18:30
поделиться
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-2
ответ дан 24 November 2019 в 18:30
поделиться

Для этого есть простой взлом:

Вставьте скрытое поле ввода в форму с сущностью, которая встречается только в наборе символов сервера, на который вы отправляете (или выполняете GET) принимает.

Пример: Если форма расположена на сервере, обслуживающем ISO-8859-1, и форма будет отправлена ​​на сервер, ожидающий, что UTF-8 вставит что-то вроде этого в форме:

<input name="iehack" type="hidden" value="&#9760;" />

IE затем "обнаружит" что форма содержит символ UTF-8 и использует UTF-8 при POST или GET. Странно, но работает.

35
ответ дан 24 November 2019 в 18:30
поделиться

У меня такая же проблема, и у меня есть относительно простое решение, которое не требует изменения кодировки символов страницы (что является болью в заднице).

Например, ваш сайт в utf-8, а вы хотите отправить форму на сайт в iso-8859-1. Просто измените действие сообщения на страницу на вашем сайте, которая преобразует опубликованные значения из utf-8 в iso-8859-1.

это можно легко сделать на php, используя что-то вроде этого:

<?php
$params = array();
foreach($_POST as $key=>$value) {
    $params[] = $key."=".rawurlencode(utf8_decode($value));
}
$params = implode("&",$params);

//then you redirect to the final page in iso-8859-1
?>
1
ответ дан 24 November 2019 в 18:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: