что такое кодировка в Ajax? - PullRequest
0 голосов
/ 10 ноября 2009

Обычно мы используем стандарт кодирования UTF-8 для отправки запроса на каждый язык. Но в некоторых языках этот стандарт кодирования не работает должным образом, тогда в этом случае мы используем ISO-8859-1.

Ответы [ 2 ]

3 голосов
/ 10 ноября 2009

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

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

Если вы используете язык на стороне сервера, вы захотите узнать, как конвертировать кодировки с этим языком. Например, в PHP есть iconv() вызовы функций и очень приятная функция mb_detect_encoding($text), которая сделает довольно приличную работу, пытаясь угадать, какова кодировка для данного бита данных, когда вы еще не знаете.

Что-то вроде этого было бы по порядку (при условии PHP-серверной части):

$text = iconv(mb_detect_encoding($text), 'UTF-8', $text);

Сделайте это со всеми пользовательскими данными, прежде чем делать с ними что-либо еще (например, используйте array_map для автоматического преобразования пользовательских данных):

function convert_to_utf8($text) {
    return iconv(mb_detect_encoding($text), 'UTF-8', $text);
}
$_GET = array_map('convert_to_utf8', $_GET);
$_POST = array_map('convert_to_utf8', $_POST);

Лучше всего определить, предоставляет ли браузер кодировку, и использовать ее в качестве первого аргумента для iconv () вместо mb_detect_encoding.

1 голос
/ 10 ноября 2009

Это довольно расплывчатый вопрос.

Если вы хотите спросить, "что такое кодировка в AJAX?" тогда ответ заключается в том, что AJAX - это не кодировка, а метод связи клиент-сервер.

Если вы хотели спросить, "какую кодировку использует AJAX?" тогда ответ заключается в том, что ответы AJAX могут использовать любую кодировку, которую вы хотите, но обычно она должна соответствовать кодировке страницы HTML, которая сделала запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...