Кракозябры в JS
Помогите, есть json, я изменил строку, добавив русский
{ "spawn": { "x": 200, "y": 150 }, "objects": [{ "type": 0, "x": 155, "y": 50, "textHeight": 40, "isCentered": false, "text": "Привет" }, { "type": 2, "x": 300, "y": 170, "width": 50, "height": 50, "dst": "classic-2" }], "lvlname": "classic-1" }но теперь Привет отображается кракозябрами. Стоит кодировка UTF-8 без bom. Попробовал изменить на просто UTF-8, но при запуске node.js-ом js скрипта, он выдает ошибку SyntaxError: Unexpected token ? in JSON at position 0 at JSON.parse (<anonymous>) at loadLevel (C:\Users\Alexander\Downloads\server-cursors.io\LevelManager.js :32:20) at Object.loadLevels (C:\Users\Alexander\Downloads\server-cursors.io\LevelMa nager.js:16:40) at loadLevels (C:\Users\Alexander\Downloads\server-cursors.io\main.js:31:15) at Object.<anonymous> (C:\Users\Alexander\Downloads\server-cursors.io\main.j s:45:1) at Module._compile (module.js:652:30) at Object.Module._extensions..js (module.js:663:10) at Module.load (module.js:565:32) at tryModuleLoad (module.js:505:12) at Function.Module._load (module.js:497:3) Ошибку выдает на эти строки var lvldata = fs.readFileSync(fn,{encoding: "utf8"}); var ld_obj = JSON.parse(lvldata); Сама функция function loadLevel(fn) { var lvldata = fs.readFileSync(fn,{encoding: "utf8"}); var ld_obj = JSON.parse(lvldata); levels[ld_obj.lvlname] = ld_obj; levelNames.push(ld_obj.lvlname); clog("loaded level??: "+ld_obj.lvlname); } |
В кодировке нельзя указать с ВОМ она или нет, это файл скрипта нужно сохранить в UTF и без ВОМ.
|
Цитата:
|
Кодировка UTF-8 без BOM работает с кириллицей.
Вы наверно неправильно кодировку меняете. Сначала Преобразовать в UTF-8 без BOM и сохранить, затем исправить текст на Привет. |
Неправильная кодировка может быть установлена в:
1. файле с json 2. в исполняемом js файле сервера 3. в консоли 4. где-то в конфигурации ноды по убыванию вероятности.) |
Цитата:
|
sasha281215,
если что-то "зябликами", значит "что-то из" не в той кодировке. То есть все файлы которые используют текст (именно все, даже CSS если в них задается текст) должны быть сохранены в одной кодировке. Для того, чтобы не было накладок, сервер также должен быть настроен на эту кодировку по умолчанию, если он передает такой заголовок. Иметь иную кодировку в пределах страницы можно только в iframe. Что же касается BOM, то сохранять файлы нужно без него (выбрать это в редакторе по умолчанию), в противном случае могут быть "непонятки" в отображении страниц (лишнее или портит верстку), и ошибки в случае JSON. |
Часовой пояс GMT +3, время: 08:18. |