Кодирование ISO-8859-15 с помощью nodejs
Мы столкнулись с очень неприятной проблемой кодирования, которая началась с обратной петли, но, похоже, связана с nodejs. По сути, мы только что закончили разработку API с помощью Loopback на основе существующей базы данных postgresql в кодировке SQL_ASCII. Поскольку API должен быть в UTF-8, мы пытаемся преобразовать данные, отправленные через наши маршруты API, в ISO-8859-15, чтобы правильно вставить их в нашу базу. Независимо от того, какие модули iconv, utf8, iso-8859 и т. Д. Мы пробовали, нам не удалось передать преобразованные строки ISO-8859-15, мы получили очень странные вещи. Например:
var Iconv = require('iconv').Iconv;
var iconv = new Iconv('UTF-8','ISO-8859-1');
var label = iconv.convert("bébé").toString();
Если мы добавим "метку" в нашу базу данных, мы получим что-то вроде этого = "b�b�"!
Поэтому мы просто попытались посмотреть прямо в терминале, как он себя ведет с базовым приложением nodejs (без обратной связи или какой-либо другой инфраструктуры), но это оказалось не лучше. После того, как кодировка терминала настроена на "ISO Latin 1", следующий код:
console.log('bébé');
Так отображалось в Терминале:
bébé
Как будто nodejs был полностью неспособен обработать строки ISO-8859. Мы что-то там упускаем? Обречены ли мы использовать строку UTF-8, чтобы заставить это работать?