Page 1 of 1
Ansi2Utf8
Posted: Thu Oct 05, 2023 8:38 am
by Horst
Hallo
Ich setze einen String zusammen und muss ihn an eine API im Jason Format senden. Nun gibts Probleme mit den Zeichen.
Ein René wird zu René, was die API nicht schluckt.
Wie convertiert man so einen String nach UTF8 ?
Ich bräuchte ein Ansi2UTF8
Gruss Horst
Re: Ansi2Utf8
Posted: Thu Oct 05, 2023 9:38 am
by wriedmann
Hallo Horst,
in X# sind alle Strings Unicode.
Am besten kodierst Du die Umlaute mit HTML-Notation.
Wolfgang
Re: Ansi2Utf8
Posted: Thu Oct 05, 2023 10:42 am
by robert
Horst
VO or X#
In Vo you could do ConvertFromCodePageToCodePage(cString, CP_ACP, CP_UTF8)
In X# all strings are unicode already
Robert
Re: Ansi2Utf8
Posted: Thu Oct 05, 2023 1:39 pm
by Horst
Dann mache ich etwas falsch bei
Code: Select all
aData := Encoding.UTF8:GetBytes( cData )
??
Dann müsste es - > Encoding.GetBytes( cData ) sein ?
Der Code:
Code: Select all
CASE nCase = 2 .or. nCase = 3 // Post
// Einen Kontakt zu Bexio hinzufügen
oRequest := ( System.Net.HttpWebRequest ) System.Net.HttpWebRequest.Create(cUrl)
oRequest:ContentType := "application/json"
oRequest:Accept := "application/json"
oRequest:Headers["Authorization"] := "Bearer "+cToken
oRequest:@@Method := "POST"
aData := Encoding.UTF8:GetBytes( cData )
nDataLen := aData:Length
oRequest:ContentLength := nDataLen
oStream := oRequest:GetRequestStream()
oStream:Write ( aData, 0, nDataLen )
oStream:Close ()
oResponse := ( System.Net.HttpWebResponse ) oRequest:GetResponse()
aResult := SELF:GetBytesForBexio( oResponse:GetResponseStream() )
cReturn := System.Text.Encoding.UTF8:GetString( aResult )
Re: Ansi2Utf8
Posted: Fri Oct 06, 2023 3:53 am
by wriedmann
Hallo Horst,
in X# sind wie bereits gesagt alle Strings bereits Unicode. Aufzupassen ist nur bei der Konvertierung in ein Byte-Array.
Ich würde mal das hier probieren.
Code: Select all
aData := System.Text.Encoding.Default:GetBytes( cData )
Wolfgang