Javascript: encodeURIComponent возвращает разницу между значением, введенным на клавиатуре, и значением, вставленным из буфера обмена. - PullRequest
0 голосов
/ 23 марта 2020

Я сталкиваюсь с проблемой кодировки URL при отправке поискового запроса с запросом.

Мой запрос принимает символы UTF-8 из элемента формы ввода.

Но закодированное значение сильно отличается, если я пытаюсь использовать encodeURIComponent.

Например:

  1. Я набрал это слово "nhầm" с клавиатуры, и оно возвращает: encodeURIComponent ("nhầm") = > "nh% E1% BA% A7m"
  2. Я скопировал это слово "nhầm", затем вставил его, и оно возвращает: encodeURIComponent ("nhầm") => "nh% C3% A2% CC% 80m"

Может кто-нибудь объяснить?

1 Ответ

0 голосов
/ 23 марта 2020

Функция encodeURIComponent () кодирует URI, заменяя каждый экземпляр определенных символов одной, двумя, тремя или четырьмя escape-последовательностями, представляющими кодировку UTF-8 символа (будет только четыре escape-последовательности для символов, состоящих из двух «суррогатные» символы).

Другими словами, он заменяет специальные символы определенными символами, которые могут использоваться в URL.

Поэтому необходимо декодировать кодированный URI со стороны сервера. .

Node.js:
decodeURI();

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