我可以用&更换%20在有空格的网址中?

时间:2009-07-07 17:45:04

标签: html url encoding character-encoding

在我的HTML中,我可以在网址中使用字符实体引用“ ”代替“%20”吗?

他们都是空格,对吧?

7 个答案:

答案 0 :(得分:15)

简短的回答是,它们都用于表示“空格”,但它们代表不同的空格。

%20是转义为字节32的URL,它对应于您可能在URL中使用的几乎任何编码中的普通旧空间。

 是一个HTML字符引用,实际上是指Unicode的字符160(以及ISO-8859-1 aka Latin-1)。它完全是一个不同的空间角色 - “不间断的空间”。即使它们看起来几乎相同,但它们是不同的字符,并且您的服务器不太可能以相同的方式对待它们。

答案 1 :(得分:6)

没有。空间(技术上)都不是。两个以不同的方式表示空格。尽一切努力在您的网址中没有空格或空格代表。许多人发现用_或 -

替换空格更优雅(包括我)

答案 2 :(得分:4)

没有。 &安培; NBSP;是一个HTML非破坏性空间实体;当在文件系统中使用或URL可能指向的任何其他地方时,此实体没有意义。 URL不是以HTML编码的。

答案 3 :(得分:3)

不,不在网址中。您可以做的是替换URL的文本表示中的空格。

所以而不是:

<a href="http://some.site/doc%20with%20spaces">http://some.site/doc%20with%20spaces</a>

你可以:

<a href="http://some.site/doc%20with%20spaces">http://some.site/doc&nbsp;with&nbsp;spaces</a>

答案 4 :(得分:2)

%20是您使用URL编码获得的,因此如果您要在URL中使用它,您应该使用它。

&安培; NBSP;是一个HTML实体,它应该用于HTML文档中的“非破坏空间”。

答案 5 :(得分:0)

大多数人都试图在URL中的文件名中绝对避免使用空格。他们每次都会给你带来严重的麻烦,所以尽量这样做。

如果您想在网址中包含空格,则必须使用%20对其进行编码。

浏览器使用

&amp; nbsp来了解如何显示页面。此信息仅用于显示。 %20将被发送到服务器,该服务器管理将网页传输给访问者所需的所有内容。服务器不会说html,因此服务器会将&amp; nbsp解释为filenname的正常部分,并搜索以foo bar方式调用的文件。找不到此文件。更糟糕的是,Web服务器会认为&amp;开始url的变量部分,只搜索页面foo,然后尝试生成变量nbsp和变量bar,但他希望看到它们的任何值。总而言之,Web服务器无法处理其中的URL。

答案 6 :(得分:-1)

也不是空格。你不应该使用空格,但如果因为什么原因你无法避免它,你应该只能做...

<a href="Web Page.aspx">Hey there</a>

...点击它会自动导航用户

WebSite/Web%20Page.aspx