njs + json + \uXXXX

Dmitry Volyntsev xeioex на nginx.com
Чт Фев 14 15:38:27 UTC 2019



On 14.02.2019 17:57, Andrey Oktyabrskiy wrote:
> Возможно ли в NJS получить строку
> {"text":"\u0431\u0435\u043b\u0438\u0431\u0435\u0440\u0434\u0430"}
> 
> из такого JSON'a
> {"text":"белиберда"}
> 
> JSON.parse прекрасно распознаёт такой JSON, а вот обратное 
> преобразование как сделать, не соображу никак.
> 
>  >> s = 
> JSON.stringify(JSON.parse('{"text":"\u0431\u0435\u043b\u0438\u0431\u0435\u0440\u0434\u0430"}')) 
> 
> '{"text":"белиберда"}'

А какую задачу вы пытаетесь решить?

Ничего готово не припоминаю, но можно, в качестве развлечения, написать 
такую функцию

: function uniсode_escape(s) {
:   var codes = [];
:   for (var i = 0; i < s.length; i++) {
:       codes.push(s.codePointAt(i).toString(16).padStart(4, '0'));
:   };
:   return '\\u'+codes.join('\\u');
: }
:
: >> unicode_escape('белиберда')
: '\\u0431\\u0435\\u043b\\u0438\\u0431\\u0435\\u0440\\u0434\\u0430'
: JSON.parse("\"" + unicode_escape('белиберда') + "\"")
: 'белиберда'



> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru


Подробная информация о списке рассылки nginx-ru