Unterschied zwischen "+" und "% A0" - Urlencodierung?

8

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%     
rybo 31.05.2011, 19:53
quelle

5 Antworten

13

%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.

    
Ignacio Vazquez-Abrams 31.05.2011, 19:57
quelle
4

Ein schnelles Googeln zeigt, dass %A0 das nicht-brechende Leerzeichen oder   in html ist. A + ist die Formcodierung für ein Standard-Leerzeichen.

Quelle

    
Paul DelRe 31.05.2011 19:57
quelle
1

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.

    
quelle
0

Wenn ich auf die Grafik auf dieser Seite verweise, ist% A0 kein Leerzeichen. % 20 ist der codierte Wert des Raumzeichens.

    
stefgosselin 31.05.2011 19:59
quelle
0

Kann mir jemand sagen, warum er% A0 einfügt oder erstellt?

?     
YuM mo 21.03.2018 18:52
quelle

Tags und Links