我有一个网址,例如:file:/// C:/Users/index.html?Scale:%20Service-Qualität

当我使用window.location.search在网址中获取参数时,在这种情况下,该参数应为Scale:Service-Qualität,但实际上收到的是Scale:%20Service-Qualit%C3%A4t,我不知道为什么我的字符ä更改为%C3%A4,当我在控制台中进行测试时,它显示为Scale:Service-Qualität

谁能帮我解决这个问题?

最佳答案

您在这里看到两个问题。

转换为ä%C3%A4称为URL或percent encoding.

这是因为从技术上讲,URL不能包含Unicode字符。

浏览器和服务器通过将URL中的非ASCII字符转换为它们的百分比编码等效项来解决此问题。

通常不用担心。

但是,就您而言,似乎也存在实际问题。控制台中的输出很奇怪,可能是因为您的网页使用的是单字节编码(例如ISO-8859-1)而不是UTF-8。

使用以下Meta标签将网页切换到UTF-8可能会解决此问题:

<meta charset="utf-8"/>


当然,在您的编辑器中将HTML文件另存为UTF-8。

10-04 14:46