Hallo.
Wie kann ich UTF-16 (LE steht vermutlich für Little Endian) aus dem Speicher auslesen und zurück schreiben?
In der Hilfe und diesem Forum habe ich dazu nichts gefunden.
UTF16 und "Unicode" scheinen wohl nicht ganz das gleiche zu sein. Wie auch immer, vielleicht kann mir dabei jemand helfen das zu verstehen und hin zu bekommen.
Oder ist das PB "interne Unicode" genau das was man unter UTF-16 versteht?
An einigen Stellen gibt es Hinweise, daß dies nicht so ist (nur mein English ist zu schlecht um es zu verstehen).
Nachtrag:
Hautpsächlich will ich nur einen String aus dem Speicher auslesen und anzeigen. Und zurück schreiben / kopieren. Ändern noch nichts, könnte allerdings passieren. Umkopieren könnte ich auch per Speicherbefehl.
Mir geht es hier nur um das Verständnis und die Sicherheit des Codes.
Soweit ich sehe, ist in meinem Fall auch immer nur ein zwei Byte (es gibt wohl mehr) UTF16 String vorhanden. Vielleicht hat das LE uach damit was zu tun.
Ich möchte nur wissen, wie ich den Text "korrekt" aus dem speicher lese, ändere, und zurückschreibe. UNICODE aus PB oder wie? UTF-8 ist ja extra aufgeführt, UTF16 nicht. Ich vermute zwar grob wie es läuft, bin mir da allerdings nicht sicher.
Wenn in einem UTF-16 String mal zwei, mal mehr Bytes drinn sind, muß das PB ja irgendwo drann erkennen können. oder ich. Also es würde mir ja schon ausreichen, wenn es dann eine Fehlermeldung oder so gut. Ich verstehe halt nicht, wie erkannt werden kann (von PB) ob 2 oder mehr Bytes für ein Zeichen verwendet werden sollen. Da es keine Steuerzeichen zu geben scheint, könnte ich vermuten eine bestimmte Bitfolge in einem der ersten beiden Bytes weißt an das mehr Bytes verwendet werden müssen.
Leider bin ich gerade eben erst auf dieses (mögliche) Problem gestoßen. In meinem Fal ist es vermutlich noch Keines.
Danke Toshy
UTF-16LE-Zeichen
-
- Beiträge: 710
- Registriert: 22.03.2005 00:29
- Computerausstattung: Computer und Strom vorhanden
- Wohnort: LK Wolfenbüttel
UTF-16LE-Zeichen
Zuletzt geändert von Toshy am 06.05.2019 21:53, insgesamt 1-mal geändert.
1. AMD Athlon II X2 250P,4GB-RAM,WinXP
2. Notebook,500mhz,128MB-RAM,WINXP
3. WHS 2003
Inet: 6Mbit Down/386Kbit Up,Flat
PB4.60
Messenger: Trillian
2. Notebook,500mhz,128MB-RAM,WINXP
3. WHS 2003
Inet: 6Mbit Down/386Kbit Up,Flat
PB4.60
Messenger: Trillian
Re: UTF-16LE-Zeichen
Schau mal in der Hilfe unter ReadStringFormat().Toshy hat geschrieben:In der Hilfe und diesem Forum habe ich dazu nichts gefunden.
Hilfe hat geschrieben:#PB_Unicode: UTF-16 (Little Endian) BOM gefunden.
-
- Beiträge: 710
- Registriert: 22.03.2005 00:29
- Computerausstattung: Computer und Strom vorhanden
- Wohnort: LK Wolfenbüttel
Re: UTF-16LE-Zeichen
Hallo.
ERstmal danke.
Ich hatte gerade noch meinen Text etwas geändert. Da kam schon die erste Anwort.
Das kenne ich aus der Hilfe, hilft mir leider nicht wirklich.
Denn es ist nur für den Dateizugriff und BOM.
Also muß es auch PB "wissen", daß es unterschiedliche Formate gibt.
Nur sind Unicode in PB SPEICHER ja wohl IMMER zwei Bytes. UTF-16 kann aber wohl mehr Bytes haben.
ERstmal danke.
Ich hatte gerade noch meinen Text etwas geändert. Da kam schon die erste Anwort.
Das kenne ich aus der Hilfe, hilft mir leider nicht wirklich.
Denn es ist nur für den Dateizugriff und BOM.
Also muß es auch PB "wissen", daß es unterschiedliche Formate gibt.
Nur sind Unicode in PB SPEICHER ja wohl IMMER zwei Bytes. UTF-16 kann aber wohl mehr Bytes haben.
1. AMD Athlon II X2 250P,4GB-RAM,WinXP
2. Notebook,500mhz,128MB-RAM,WINXP
3. WHS 2003
Inet: 6Mbit Down/386Kbit Up,Flat
PB4.60
Messenger: Trillian
2. Notebook,500mhz,128MB-RAM,WINXP
3. WHS 2003
Inet: 6Mbit Down/386Kbit Up,Flat
PB4.60
Messenger: Trillian
- NicTheQuick
- Ein Admin
- Beiträge: 8675
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
- Kontaktdaten:
Re: UTF-16LE-Zeichen
UTF-16 hat immer 2 Bytes. Little oder Big Endian sagen nur aus in welcher Reihenfolge die beiden Bytes stehen müssen. Siehe dazu auch Wikipedia, da steht alles: https://de.wikipedia.org/wiki/UTF-16