Почему node.js по-разному декодирует одну и ту же строку на разных платформах? - PullRequest
0 голосов
/ 28 февраля 2019

В настоящее время у меня есть эта строка, ƴǮǮȏϘЁЎϊդ࠷ࡔც, которую я закодировал w / encodeURIComponent JS, чтобы она стала %C6%B4%C7%AE%C7%AE%C8%8F%CF%98%D0%81%D0%8E%CF%8A%D5%A4%E0%A0%B7%E0%A1%94%E1%83%AA.

Когда я пытаюсь декодировать ее с помощью decodeURIComponent в node.js в linux,Я вернул оригинальную строку.Однако, когда я пытаюсь декодировать его с помощью node.js в Windows, я получаю следующее: ƴǮǮÈϘÐÐŽÏŠÕ¤à ·à¡”áƒª.Есть ли причина, почему?Мне кажется странным, что на разных платформах выходные данные различны.

Это тайно, это то же самое в другой кодировке?Как я могу преобразовать эту строку Windows обратно в исходную форму, в которой я хочу, чтобы она была?

1 Ответ

0 голосов
/ 28 февраля 2019

Хотя возможно, что вы столкнулись с ошибкой, Node.js должен делать то же самое на каждой платформе.

Для меня более вероятно одно из следующих объяснений:

  1. Входные данные различны для каждой платформы.
  2. Инструмент, который вы используете для проверки выходных данных, отличается на каждой платформе или настройки этих инструментов различны.

Вот где вы должны искать.

Для чего бы то ни было, опубликованная вами «строка» полностью сломана.По крайней мере, в том, как вы разместили его для переполнения стека.

Большинство инструментов, связанных со строками javascript, ожидают UTF-8 и то, что вы опубликовали ... ну, это может быть много вещей, но это не похоже на человекаязык.Похоже, что он «был» действительным текстом в некоторой кодировке, неправильно истолкован неверным декодером, а затем скопирован и вставлен в stackoverflow (который является UTF-8).Это моджибаке

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...