German Leerzeichen senden schlägt fehler

Sinan Tuzcu

Well-Known Member
Licensed User
Longtime User
Hallo,

ich sende mit folgendem code
B4X:
request1.InitializeGet("http://www.progtronic.de/efendiapp/erstprofil.php?&Macadresse=" & "34:12:54:67:54:23") 
HClient.Execute(request1, 1)

string zu MySql. soweit alles in Ordnung.

Nur, es dürfen keine Leerzeichen enthalten, da sonst Fehler vom Android gibt.

wie kann ich das umgehen, das ich auch Leerzeilen senden kann?
 

Kiffi

Well-Known Member
Licensed User
Longtime User
wie kann ich das umgehen, das ich auch Leerzeilen senden kann?
Das Leerzeichen durch %20 ersetzen.

sprich: "Hallo Sinan Tuzcu" wird zu "Hallo%20Sinan%20Tuzcu"

Die StringUtils bieten hierfür die Funktion EncodeUrl(), welche auch andere
'kritische' Zeichen umwandelt.

Grüße ... Peter
 

Sinan Tuzcu

Well-Known Member
Licensed User
Longtime User
Hi Kiffi,

wie baue ich das
B4X:
Funktion EncodeUrl()
hier in den String rein?
B4X:
request1.InitializeGet("http://www.progtronic.de/efendiapp/erstprofil.php?&Name=" & "Sinan Tuzcu") 
HClient.Execute(request1, 1)

gruß
sinan
 

Sinan Tuzcu

Well-Known Member
Licensed User
Longtime User
Hallo,

habe das mal so versucht aber leider ohne Erfolg,
B4X:
Dim su As StringUtils
Dim url, encodedUrl As String
encodedUrl = su.EncodeUrl("http://www.progtronic.de/efendiapp/erstprofil.php?&Name=" & "Sinan Tuzcu", "UTF8")

B4X:
request1.InitializeGet(encodedUrl ) 
HClient.Execute(request1, 1)

ist das so korrekt?
wenn ja, was mache ich da falsch?

sinan
 

Kiffi

Well-Known Member
Licensed User
Longtime User
am besten kannst Du Dir einen Breakpoint auf die Zeile 'encodedUrl = ...' setzen und dann sehen, was in der Variable steht.

http%3A%2F%2Fwww.progtronic.de%2Fefendiapp%2Ferstprofil.php%3F%26Name%3DSinan+Tuzcu

Kein Wunder, dass es da einen Fehler gibt ;-)

Ich bin von anderen Programmiersprachen (beispielsweise PureBasic) einen
anderen Output gewohnt. Die B4A-EncodeUrl()-Funktion liefert auf jeden Fall ein
abweichendes Ergebnis.


Also solltest Du nur die Parameter encoden; nicht den gesamten URL.

B4X:
Dim Name, encodedUrl As String

Name = su.EncodeUrl("Sinan Tuzcu", "UTF8")
encodedUrl = "http://www.progtronic.de/efendiapp/erstprofil.php?&Name=" & Name

Grüße ... Kiffi
 

Sinan Tuzcu

Well-Known Member
Licensed User
Longtime User
Hallo,

habe jetzt neulich entdeckt, das Türkische Symbole nicht mit dieser Methode richtig dargestellt werden.

B4X:
Dim Name, encodedUrl As String

Name = su.EncodeUrl("Şenay Çolakoğlu", "UTF8")
encodedUrl = "http://www.progtronic.de/efendiapp/erstprofil.php?&Name=" & Name

ich dachte ich hätte mit UTF8 das Problem beseitigt.
:confused::confused:

gruß
Sinan
 

Kiffi

Well-Known Member
Licensed User
Longtime User
Der enkodierte Name sieht (für mich) erstmal OK aus:

%C5%9Eenay+%C3%87olako%C4%9Flu

Kommt darauf an, ob er in Deinem PHP-Code wieder korrekt
dekodiert wird...

Grüße ... Kiffi
 
Top