Символы с jQuery json

Я использую $ jQuery .getJSON для получения списка городов.

Все хорошо работает, но я из Эстонии, и мы используем некоторые символы как õ, ü. ä, ö.

Когда я передаю буквы как это к функции обратного вызова, я продолжаю получать пустые строки. Я попробовал к base64, кодируют (серверная сторона) - декодируют (плагин jquery base64) строки (я думал, что это была хорошая идея, пока я могу сжать страницы с php, таким образом, я не должен волноваться о пропускной способности), но таким образом я заканчиваю с некоторыми случайными китайскими символами.

Каково было бы лучшее обходное решение для этой проблемы.

Спасибо.

7
задан Mikk 22 October 2013 в 13:18
поделиться

4 ответа

Вам необходимо utf8_encode () ваши выходные данные. Нет необходимости устанавливать кодировку на стороне клиента на UTF-8, поскольку она уже используется по умолчанию.

<?php
    if( isset( $_GET['json'] ) ) {

        die( json_encode( array( 'text' => utf8_encode( 'õ, ü. ä, ö' ) ) ) );
    }

    include_jquery(); # this outputs jquery include
>?

<script>

    $.getJSON( 'this_file.php', { 'json': 1 }, function( data ) {
        console.log( 'data', data );
    });

</script>
4
ответ дан 7 December 2019 в 10:00
поделиться

Используйте UTF-8 на страницах php и в качестве кодировки вывода

0
ответ дан 7 December 2019 в 10:00
поделиться

Это похоже на проблему с кодировкой/шифром: вы уверены, что используете:

  • один и тот же шифр везде в вашем приложении?
    • база данных
    • исходные файлы
    • HTTP-заголовки, передаваемые браузеру
  • Кодировка, поддерживающая эти символы?
    • т.е. : вы используете UTF-8 ?
    • Это кодовая система Unicode, которая обычно используется для веб-приложений и поддерживает практически все символы, о которых только можно подумать
0
ответ дан 7 December 2019 в 10:00
поделиться

Вы должны убедиться, что используете последовательную кодировку символов. Нужные вам эстонские символы находятся в utf-8, поэтому вам нужно использовать $. Ajax и явно указать кодировку char (через contentType).

Вы можете взять полученный ajax и обработать его.

Вы также можете использовать ajaxSetup перед вызовом getJSON для установки типа содержимого.

http://api.jquery.com/jQuery.ajaxSetup/

Это позволит вам использовать getJSON

Кроме того, вот соответствующее сообщение SO на ту же тему: Как установить кодировку в .getJSON JQuery

2
ответ дан 7 December 2019 в 10:00
поделиться
Другие вопросы по тегам:

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