2016-07-28 17 views
1

Ich arbeite mit einem externen api decodiert, und ich wollte, wie man es testen ... Sonderzeichen akzeptieren, so versuche ich, den folgenden Wert zu senden: -warum diese 2 charecters £ und ¬ wird nicht richtig

!"£$%^&*()_+-=[]{},./;'[]#?:@~{};:\|¬` 

, die innerhalb des externen Systems wie folgt gespeichert wurden: -

!"%u00a3$%^&*()_+-=[]{},./;'[]#?:@~{};:\|%u00ac` 

was bedeutet, dass die externe api des %u00a3 als £, zu entschlüsseln und auch nicht in der Lage war zu dekodieren die %u00ac als ¬ nicht in der Lage war ?? während es in der Lage war, die anderen Werte korrekt zu dekodieren ... gibt es einen Grund, warum es £ und ¬ anders behandelt hat? Mit anderen Worten, es konnte diese 2 Charterer nicht korrekt dekodieren?

zweiter Punkt. Da meine API diese Zeichentypen nicht unterstützt, gibt es eine Möglichkeit, zu überprüfen, ob eine Zeichenkette solche Werte enthält, und den Benutzern eine Fehlermeldung anzuzeigen, dass sie diese Zeichen nicht hinzufügen sollten.

+1

wie dekodierst du sie ?? – Steve

+0

@Steve Ich benutze UriBuilder (apiurl); wo das apiurl das uri der API und die übergebenen Parameter einschließlich der £ und ¬ Werte enthält –

Antwort

2

Die externe api wahrscheinlich den ASCII-Zeichensatz verwendet: https://en.wikipedia.org/wiki/ASCII

Da die Zeichen £ und ¬ nicht im ASCII-Zeichensatz vorhanden ist, kehrte die api den Unicode-hexadezimalen Wert für die Zeichen (%u es ist ein, um anzuzeigen, Unicode-Zeichen und 00ac, das ist der Hexadezimalwert des Zeichens ¬).

Es könnte auch ein Problem mit dem Programm sein, dem Sie den Wert senden oder wie Sie die Zeichenfolge lesen. Kann ohne weitere Informationen nicht sagen.

+0

das ist ein gültiger Punkt, denke ich ... also gibt es eine Möglichkeit, Benutzer daran zu hindern, solche Werte hinzuzufügen? Ich meine, kann ich überprüfen, ob Eine Zeichenkette enthält Nicht-ASCII-Zeichen wie ¬ und £ und zeigt eine Fehlermeldung an den Benutzer an? –

+0

@johnG Ich weiß wirklich nicht viel über cis oder html, also solltest du das jemand anderem fragen, oder suchen, wenn es in einer anderen Frage beantwortet wurde. – fraret