Ich bin URL, die eine Textzeichenfolge codiert, die an eine Funktion übergeben wird. Es codiert jedoch das zweite Leerzeichen in einem Doppelraum als "% A0". Dies bedeutet, dass beim Dekodieren der Zeichenfolge "% A0" als Fragezeichen in einer schwarzen Box angezeigt wird.
Ich muss wirklich nur in der Lage sein, den zusätzlichen Platz zu entfernen, aber ich würde gern verstehen, was das verursacht und wie man richtig damit umgeht.
Zum Beispiel:
%Vor%codiert zu:
%Vor% %A0
zeigt einen NBSP (U + 00A0) an. +
gibt einen normalen Raum an (U + 0020). Der NBSP wird als Ersatzzeichen (U + FFFD) angezeigt, da die Codierung des Zeichens nicht mit der Codierung der Seite übereinstimmt. Daher ist die Bytefolge für die Seite nicht gültig.
Ein schnelles Googeln zeigt, dass %A0
das nicht-brechende Leerzeichen oder
in html ist. A +
ist die Formcodierung für ein Standard-Leerzeichen.
Das Problem, das Sie haben, ist, dass der zweite "Raum" nicht wirklich ein Leerzeichen ist, es ist ein Zeichen, dass diese Schriftart keine Glyphe (ich denke, das ist der Begriff) zu repräsentieren (daher die Blackbox mit der Fragezeichen). %A0
ist der Escape-Code für diesen Charakter. Ihr Code wird technisch korrekt gehandhabt, ich denke, das Problem liegt an dem, was die Zeichenfolge überhaupt erzeugt.
Wenn ich auf die Grafik auf dieser Seite verweise, ist% A0 kein Leerzeichen. % 20 ist der codierte Wert des Raumzeichens.