Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von Chucky109.
String UTF-8 Encoden
Hi,
ich such schon ne Weile aber was richtig brauchbares hab ich nicht gefunden. Ich habe einen ganz normalen Text mit Umlauten usw. und muss es schaffen diesen zu Entcoden, sodass auf z.B. ü %u00FC wird. Laut Google ist das UTF-8 Unicode. Gibts dafür etwas in VB?
Wenn ich da nun üäö eingebe und mir das mit der MessageBox ausgeben lass, kommt auch ganz normal üäö raus, was ja nicht sein soll.
Ja, klar, du machst mit dem Code nämlich einfach wieder genau rückgängig, was du vorher machst.
Du musst aus dem Text diejenigen Zeichen raussuchen, die du Escapen willst, und diese durch GetBytes jagen. Die Bytes konvertierst du dann zu Hex (.ToString("X4")) und fügst sie anstelle der Zeichen in den String ein.
Aber wenn ich das für jedes Zeichen machen muss, dann kann ich doch auch einfach Replace nehmen, mir die Cods raussuchen und es so mega unsauber lösen, das kanns doch auch nicht sein oder?
Könntest du, im Prinzip ist die Unicode-Zeichentabelle aber schon ein eben solches Dictionary, das einem Zeichen einen Hex-Wert zuordnet, warum also selber anlegen?
Ich glaub ich hab da nen großen Denkfehler drin. Kannst du mir vlt. nen Codeschnippsel geben, der das ganze nen bisschen verdäutlicht?
Du möchtest eher etwas, was man als URLEncode bezeichnet. Unter dem Stichwort sollte sich etwas passendes finden lassen.
Das habe ich auch bereits in den Fingern gehabt, allerdings war es nicht das erwartete Ergebnis, sondern Zeichen wurden anders encodet.
Du übergibst den zu escapenden String und die Zeichen, die escapet werden sollen (lässt sich natürlich auch hardcoden, wenn dir das reicht).
Funktioniert an sich schonmal, allerdings kommt bei nem ü %uFC00 statt %u00FC raus
Dann müsstest du mal Encoding.BigEndianUnicode statt Unicode probieren, das dürfte passen
Kurze Frage noch, wie geb ich die ganzen Hex Zeichen an? Kann ich die einfach als &H30 usw angeben?
du kommst wahrs. am besten dabei weg, wenn du als chars einfach alle Chars übergibst.
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVXYZ0123456789"
Super, vielen Dank euch zwei
Okay ich muss mich doch nochmal melden, leider kommen bei den Hoch-Zeichen (^) Chinese Zeichen später raus Weiß allerdings nicht was der Fehler ist, habs alles übernommen und die erlaubten Zeichen von Manawyrm genommen.
Edit: Hat sich erledigt, hab vergessen das normale Unicode durch BigEndianUnicode zu ersetzen
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Chucky109“ ()