Deutschsprachiges X#-Forum – German language forum
Moderator: wriedmann
Horst
Posts: 327 Joined: Tue Oct 13, 2015 3:27 pm
Post
by Horst » Thu Oct 05, 2023 8:38 am
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
wriedmann
Posts: 3691 Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy
Post
by wriedmann » Thu Oct 05, 2023 9:38 am
Hallo Horst,
in X# sind alle Strings Unicode.
Am besten kodierst Du die Umlaute mit HTML-Notation.
Wolfgang
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
robert
Posts: 4357 Joined: Fri Aug 21, 2015 10:57 am
Location: Netherlands
Post
by robert » Thu Oct 05, 2023 10:42 am
Horst
VO or X#
In Vo you could do ConvertFromCodePageToCodePage(cString, CP_ACP, CP_UTF8)
In X# all strings are unicode already
Robert
XSharp Development Team
The Netherlands
robert@xsharp.eu
Horst
Posts: 327 Joined: Tue Oct 13, 2015 3:27 pm
Post
by Horst » Thu Oct 05, 2023 1:39 pm
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 )
wriedmann
Posts: 3691 Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy
Post
by wriedmann » Fri Oct 06, 2023 3:53 am
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
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it