我是url编码一串文本传递给一个函数。但是,它将双空格中的第二个空格编码为“%A0”。这意味着当我解码字符串时,“%A0”在黑框中显示为问号。
我真的只需要能够移除额外的空间,但我想了解导致这种情况的原因以及如何正确处理它。
例如:
Something Something else
编码为:
Something+%A0Something+else
答案 0 :(得分:16)
%A0
表示NBSP(U + 00A0)。 +
表示正常空格(U + 0020)。 NBSP显示为替换字符(U + FFFD),因为字符的编码与页面的编码不匹配,因此其字节序列对页面无效。
答案 1 :(得分:4)
快速Google搜索显示%A0
是不间断的空格字符或html中的
。 +
是标准空格字符的表单编码。
答案 2 :(得分:1)
你遇到的问题是第二个“空间”实际上并不是一个空格,它是一个字体,该字体没有一个字形(我认为是这个术语)来代表(因此黑色的盒子与问号)。 %A0
是该字符的escape code。您的代码在技术上正确处理它,我认为问题在于首先生成字符串的任何内容。
答案 3 :(得分:0)
如果我引用chart on this page,则%A0不是空格。 %20是空间编码的编码值。