Difference between "+" and "%A0" - urlencoding?

14,288

Solution 1

%A0 indicates a NBSP (U+00A0). + indicates a normal space (U+0020). The NBSP displays as a replacement character (U+FFFD) because the encoding of the character does not match the encoding of the page, so its byte sequence is not valid for the page.

Solution 2

A quick Googling shows that %A0 is the non-breaking space character or   in html. A + is the form-encoding for a standard space character.

Source

Solution 3

The problem you're having is that the second "space" is not really a space, it's a character that that font doesn't have a glyph (I think that's the term) to represent (hence the black box with the question mark). %A0 is the escape code for that character. Your code is technically handling it correctly, I think the problem is with whatever is generating the string in the first place.

Share:
14,288
rybo
Author by

rybo

Updated on June 04, 2022

Comments

  • rybo
    rybo almost 2 years

    I am url encoding a string of text to pass along to a function. However, it encodes the second space in a double-space as "%A0". This means that when I decode the string, the "%A0" is displayed as a question mark in a black box.

    I really just need to be able to remove the extra space, but I'd like to understand what is causing this and how to handle it correctly.

    For example:

    Something  Something else
    

    Encodes to:

    Something+%A0Something+else