Вопрос по javascript, json, jquery – jQuery.parseJSON \ u0092 символ не анализируется

3

У меня есть текст, закодированный из php с помощью функции ajax с де php utf8_encode. Если я распечатаю его в консоли непосредственно, текст отображается следующим образом:

"projects":[
    {
        "id": "1",
        "title": "CURSOS DE PERIODISME",
        "description": "Els cursos tenen l\u0092objectiu d\u0092aprofundir en l\u0092actitud period\u00edstica dels alumnes."
    }
]

Когда я использую jquery.parseJSON и снова печатаю текст в описании, текст анализируется следующим образом:

Els cursos tenen lobjectiu daprofundir en lactitud period - выпускники stica dels.

Все остальные символы юникода хорошо анализируются, но почему не анализируется? Что я делаю не так?

Заранее спасибо!

Просто замечание: FF14JSON.parse правильно разбирает вашу строку, включая\u0092. Sirko
Если я romve, uf8_encode возвращает ноль с json_encode Sergi Mínguez
Какая ваша оригинальная строка? Пытался удалить utf8_encode? OptimusCrime

Ваш Ответ

2   ответа
2

U + 0092 является управляющим символом, возможно, он анализируется, но вы его не видите из-за того, как вы используете строку.

Например, этот код, который вообще не анализирует JSON:

(function() {

  var strWith = "Els cursos tenen l\u0092objectiu d\u0092aprofundir";
  var strWithout = "Els cursos tenen lobjectiu daprofundir";

  display("With    (" + strWith.length + "): " + strWith);
  display("Without (" + strWithout.length + "): " + strWithout);

  function display(msg) {
    var p = document.createElement('pre');
    p.innerHTML = String(msg);
    document.body.appendChild(p);
  }
})();

Живая копия | источник

Выход:

With    (40): Els cursos tenen lobjectiu daprofundir
Without (38): Els cursos tenen lobjectiu daprofundir

Как вы можете видеть, они выглядят одинаково как с управляющим символом, так и без него, но мы можем видеть, насколько длинным является управляющий символis включены в строку.

@ SergiM & # фиксировано; nguez:str = str.replace(/\u0092/g, "'") следует сделать это:Live example | source
@ SergiM & # xED; nguez: Рад, что помог. :-)
Спасибо за ответ, и что я могу сделать, чтобы отобразить его? Я хотел бы видеть: Els cursos tenen l 'objectiu d' aprofundir Sergi Mínguez
это очевидно! Спасибо всем! Sergi Mínguez
0

> $.parseJSON('"\\u0092"').length 
1
> $.parseJSON('"\\u0092"').charCodeAt(0)
146
> $.parseJSON('"\\u0092"').charCodeAt(0).toString(16)
"92"

Это только не будет отображаться, см. Ответ @TJCrowders за это.

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