Hi,
Ich bediene eine Schnittstelle der Post CH und übermittle die Daten per JSON, wie es die Schnittstelle erfordert.
Meine Anfragen wurden ständig mit Fehlern beantwortet. Der Grund ist der, dass bspw. Umlaute nicht als Unicode-Entities angegeben sind.
Mein String ist Unicode bzw. UTF8, was ich jeweils wie folgt angewendet habe:
[highlight=csharp]
// Unicode
byte[] b = Encoding.Default.GetBytes( this.JSON );
byte[] bu = Encoding.Convert( Encoding.Default, Encoding.Unicode, b );
this.JSON = Encoding.Unicode.GetString( bu );
// UTF8
byte[] b = Encoding.Default.GetBytes( this.JSON );
byte[] bu = Encoding.Convert( Encoding.Default, Encoding.UTF8, b );
this.JSON = Encoding.UTF8.GetString( bu );
[/highlight]
Dennoch bekomme ich weiterhin den gleichen Fehler von der Schnittstelle.
Wenn ich aber ü bspw. gegen \u00fc ersetze funktioniert es einwandfrei.
Um die Schnittstelle nun nutzen zu können, würde mich interessieren, ob es eine Möglichkeit gibt, die Entity-Ersetzungen vom System übernehmen zu lassen, anstatt dies mit Replace() umzusetzen?
Danke
Ich bediene eine Schnittstelle der Post CH und übermittle die Daten per JSON, wie es die Schnittstelle erfordert.
Meine Anfragen wurden ständig mit Fehlern beantwortet. Der Grund ist der, dass bspw. Umlaute nicht als Unicode-Entities angegeben sind.
Mein String ist Unicode bzw. UTF8, was ich jeweils wie folgt angewendet habe:
[highlight=csharp]
// Unicode
byte[] b = Encoding.Default.GetBytes( this.JSON );
byte[] bu = Encoding.Convert( Encoding.Default, Encoding.Unicode, b );
this.JSON = Encoding.Unicode.GetString( bu );
// UTF8
byte[] b = Encoding.Default.GetBytes( this.JSON );
byte[] bu = Encoding.Convert( Encoding.Default, Encoding.UTF8, b );
this.JSON = Encoding.UTF8.GetString( bu );
[/highlight]
Dennoch bekomme ich weiterhin den gleichen Fehler von der Schnittstelle.
Wenn ich aber ü bspw. gegen \u00fc ersetze funktioniert es einwandfrei.
Um die Schnittstelle nun nutzen zu können, würde mich interessieren, ob es eine Möglichkeit gibt, die Entity-Ersetzungen vom System übernehmen zu lassen, anstatt dies mit Replace() umzusetzen?
Danke
Comment