Forum: PC-Programmierung JSON zu ASCII


von Fred R. (Firma: www.ramser-elektro.at/shop) (fred_ram)


Lesenswert?

Hallo Leute,

Ich Frage eine Restfull API von Woocomemrce ab.
Mommentan bin ich noch am Parser bauen.
Funktioniert soweit recht gut, nur habe ich eine Frage:

Wie kann ich folgende Korrekturen vermeiden?
(Gibt es eine Tabelle mit sämtlichen Sonderzeichen?)

NewString = NewString.Replace("\u00df", "ß")
NewString = NewString.Replace("\u00fc", "ü")
NewString = NewString.Replace("\u00f6", "ö")
NewString = NewString.Replace("\u00e4", "ä")
NewString = NewString.Replace("\u20ac", "€")

von Peter II (Gast)


Lesenswert?

Fred R. schrieb:
> Wie kann ich folgende Korrekturen vermeiden?
> (Gibt es eine Tabelle mit sämtlichen Sonderzeichen?)

klar, einfach in deinen Zeichensatz konvertieren den du brauchst. Aber 
ohne Sprache kann man kaum weiter Tipps geben.

von Jemand (Gast)


Lesenswert?

Du hast nicht gesagt, in welcher Sprache du das machst.
Bei D ist sowas in der Standardbibliothek.

von Fred R. (Firma: www.ramser-elektro.at/shop) (fred_ram)


Lesenswert?

Wird in vb.net gemacht.

Abruf ist wie folgt:
1
Function WoocommerceGET(ByVal ApiCall As String) As Response
2
        Dim wc As New WebClient()
3
            wc.Headers(HttpRequestHeader.Authorization) = "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(Key + ":" + Secret))
4
        Try
5
            WoocommerceGET.ResponseJson = wc.DownloadString(APIAddress & ApiCall)
6
            WoocommerceGET.Header = wc.ResponseHeaders
7
        Catch ex As Exception
8
            WoocommerceGET.ResponseJson = ""
9
            WoocommerceGET.Header = Nothing
10
        End Try
11
    End Function

von Vlad T. (vlad_tepesch)


Lesenswert?

Fred R. schrieb:
> Mommentan bin ich noch am Parser bauen.

warum das Rad neu erfinden?
JSON Parser gibts doch in Massen

von Fred R. (Firma: www.ramser-elektro.at/shop) (fred_ram)


Lesenswert?

Vlad T. schrieb:
> warum das Rad neu erfinden?
> JSON Parser gibts doch in Massen

Eigentlich nur einen.
Den Json.net

Komme aber schön mit meinem zurecht.
Warum soll ich auf ein anderes Rad umsatteln?

von Εrnst B. (ernst)


Lesenswert?

1) Verwende eine fertige JSON-Bibliothek zum parsen. Die macht das 
gleich richtig.

2) wenn das nicht geht:

Fred R. schrieb:
> (Gibt es eine Tabelle mit sämtlichen Sonderzeichen?)
>
> NewString = NewString.Replace("\u00df", "ß")
0x00df = 223; chr(223)='ß'.
> NewString = NewString.Replace("\u00fc", "ü")
0x00fc = 252; chr(252)='ü';
[...]
> NewString = NewString.Replace("\u20ac", "€")
0x20ac = 8364 ; chr(8364) = '€';


Hoffentlich selbsterklärend.


Brauchst nur ein unicode-fähiges chr.

von Fred R. (Firma: www.ramser-elektro.at/shop) (fred_ram)


Lesenswert?

Εrnst B. schrieb:
>> NewString = NewString.Replace("\u00df", "ß")
> 0x00df = 223; chr(223)='ß'.
>> NewString = NewString.Replace("\u00fc", "ü")
> 0x00fc = 252; chr(252)='ü';
> [...]
>> NewString = NewString.Replace("\u20ac", "€")
> 0x20ac = 8364 ; chr(8364) = '€';

Perfekt :-)
Warum bin ich nicht selbst drauf gekommen....
Ich glaube das \u hat mich irritiert.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Fred R. schrieb:

> Komme aber schön mit meinem zurecht.
> Warum soll ich auf ein anderes Rad umsatteln?

Weil Du dann schon fertig wärest. Das Projekt hier listet eine Unmenge 
an Parsern auf: https://github.com/miloyip/nativejson-benchmark. Für 
Dich könnten dabei aber vor allem die Tests interessant sein.

mfg Torsten

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.