Я пытаюсь загрузить json файл UTF8 с диска, используя node.js(0.10.29) в Windows 8.1. Ниже приведен код:
var http = require('http');
var utils = require('util');
var path = require('path');
var fs = require('fs');
var myconfig;
fs.readFile('./myconfig.json', 'utf8', function (err, data) {
if (err) {
console.log("ERROR: Configuration load - " + err);
throw err;
} else {
try {
myconfig = JSON.parse(data);
console.log("Configuration loaded successfully");
}
catch (ex) {
console.log("ERROR: Configuration parse - " + err);
}
}
});
При запуске я получаю следующую ошибку:
SyntaxError: Unexpected token ´╗┐
at Object.parse (native)
...
Теперь, когда я изменяю кодировку файла (используя Notepad ++) в ANSI, он работает без проблем.
Любые идеи, почему это так? Несмотря на то, что разработка выполняется в Windows, окончательное решение будет развернуто на разных серверах, отличных от Windows, я опасаюсь, что я столкнусь с проблемами на сервере, например, если я использую ANSI файл для Linux.
В соответствии с моими поисками здесь и через Google код должен работать на Windows, поскольку я специально говорю ему, чтобы он ожидал файл UTF-8.
Пример конфигурации, который я читаю:
{
"ListenIP4": "10.10.1.1",
"ListenPort": 8080
}