Документы 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:
после нажатия введите / перейдите к URL-адресу
I не могу найти никакой документации о том, как браузеры кодируют их в своих адресных строках. Я сталкивался с этим только с одинарной кавычкой, но мне было любопытно, почему это отличается от реализации javascript для кодирования и почему она вообще кодируется, когда spe c говорит, что они в порядке.