Персонажи с JQuery JSON

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

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

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

Как лучше всего обойти эту проблему.

Спасибо.

7 голосов | спросил Mikk 16 MarpmTue, 16 Mar 2010 14:54:54 +03002010-03-16T14:54:54+03:0002 2010, 14:54:54

4 ответа


0

Вам нужно 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>
ответил Andy 16 MarpmTue, 16 Mar 2010 15:12:05 +03002010-03-16T15:12:05+03:0003 2010, 15:12:05
0

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

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

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

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

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

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

ответил Joshua Smith 16 MarpmTue, 16 Mar 2010 15:11:04 +03002010-03-16T15:11:04+03:0003 2010, 15:11:04
0

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

ответил jitter 16 MarpmTue, 16 Mar 2010 15:09:55 +03002010-03-16T15:09:55+03:0003 2010, 15:09:55
0

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

  • Одна и та же кодировка везде в вашем приложении?
    • базы данных
    • исходные файлы
    • HTTP-заголовки отправляются в браузер
  • Кодировка, которая поддерживает эти символы?
      то есть. : вы используете UTF-8?
  • Какая кодировка Unicode обычно используется для веб-приложений и поддерживает практически любой символ, о котором можно подумать
ответил Pascal MARTIN 16 MarpmTue, 16 Mar 2010 15:10:14 +03002010-03-16T15:10:14+03:0003 2010, 15:10:14

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132