“+”和“%A0”之间的区别 - urlencoding?

时间:2011-05-31 19:53:17

标签: html forms urlencode

我是url编码一串文本传递给一个函数。但是,它将双空格中的第二个空格编码为“%A0”。这意味着当我解码字符串时,“%A0”在黑框中显示为问号。

我真的只需要能够移除额外的空间,但我想了解导致这种情况的原因以及如何正确处理它。

例如:

Something  Something else

编码为:

Something+%A0Something+else

4 个答案:

答案 0 :(得分:16)

%A0表示NBSP(U + 00A0)。 +表示正常空格(U + 0020)。 NBSP显示为替换字符(U + FFFD),因为字符的编码与页面的编码不匹配,因此其字节序列对页面无效。

答案 1 :(得分:4)

快速Google搜索显示%A0是不间断的空格字符或html中的 +是标准空格字符的表单编码。

Source

答案 2 :(得分:1)

你遇到的问题是第二个“空间”实际上并不是一个空格,它是一个字体,该字体没有一个字形(我认为是这个术语)来代表(因此黑色的盒子与问号)。 %A0是该字符的escape code。您的代码在技术上正确处理它,我认为问题在于首先生成字符串的任何内容。

答案 3 :(得分:0)

如果我引用chart on this page,则%A0不是空格。 %20是空间编码的编码值。