Документы MDN для encodeUri и encodeUriComponent описывают, что одинарные кавычки не кодируются, так как они действительны в URL без кодирования, и это работает во всех браузерах одинаково.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent
Однако адресные строки браузера, похоже, имеют свои собственные правила для кодирования URI. Если вы поместите одиночную кавычку в URI в Chrome или Safari, она закодирует его в% 27, Firefox, похоже, сделает то же самое, а затем, возможно, изрядно напечатает его снова как символ одинарной кавычки
т. е. перед переходом к URL-адресу в chrome: ![enter image description here](https://i.stack.imgur.com/IScbM.png)
после нажатия введите / перейдите к URL-адресу ![enter image description here](https://i.stack.imgur.com/typ6b.png)
I не могу найти никакой документации о том, как браузеры кодируют их в своих адресных строках. Я сталкивался с этим только с одинарной кавычкой, но мне было любопытно, почему это отличается от реализации javascript для кодирования и почему она вообще кодируется, когда spe c говорит, что они в порядке.