Почему кодировка наборов приложений Azure приносит мне неправильные символы? - PullRequest
0 голосов
/ 18 ноября 2018

У меня проблема с кодировкой лазурных appsettings.

У меня есть приложение node.js, развернутое в службе приложений. При вызове переменных среды с использованием process.env значения вводятся в неправильной кодировке. Я ожидал, что кодировка «utf8» поддерживает символы типа «ñ», «ó», «í», «á», «é», «ú», но вместо этого я получаю символы типа «¢», «£ "," "и т. д.

Не могли бы вы мне помочь?

Спасибо!

1 Ответ

0 голосов
/ 19 ноября 2018

Точно такая же вещь на моей стороне.

Кажется, что некоторые проблемы с кодированием process.env, как в Куду (https://<webappname>.scm.azurewebsites.net/Env.cshtml#envVariables), настройки приложения могут отображаться как ожидалось.Также в приложении .net мне удалось получить правильную строку.

Сравнивая входные данные с полученным декодированным результатом, я обнаружил, что он может быть закодирован с использованием CP437 и декодирован с использованием другой кодировкикак win1252 .

Таким образом, одним из обходных путей является кодирование строки, которая была каким-то образом неправильно отформатирована, и ее повторное декодирование с использованием кодированной кодировки.Установите iconv-lite и попробуйте следующий фрагмент кода.

var iconv = require('iconv-lite');

var buf = iconv.encode(process.env.MYTEST, 'win1252');
var result = iconv.decode(buf, 'ibm437');
...