Кодирование 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, чтобы заставить это работать?

0 ответов

Другие вопросы по тегам