Aktuelle Zeit: 22.09.2019 20:31

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: UTF-16LE-Zeichen
BeitragVerfasst: 06.05.2019 21:37 
Offline

Registriert: 22.03.2005 00:29
Wohnort: LK Wolfenbüttel
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

_________________
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


Zuletzt geändert von Toshy am 06.05.2019 21:53, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: UTF-16LE-Zeichen
BeitragVerfasst: 06.05.2019 21:47 
Offline
Benutzeravatar

Registriert: 04.08.2009 17:24
Toshy hat geschrieben:
In der Hilfe und diesem Forum habe ich dazu nichts gefunden.

Schau mal in der Hilfe unter ReadStringFormat().
Hilfe hat geschrieben:
#PB_Unicode: UTF-16 (Little Endian) BOM gefunden.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: UTF-16LE-Zeichen
BeitragVerfasst: 06.05.2019 21:55 
Offline

Registriert: 22.03.2005 00:29
Wohnort: LK Wolfenbüttel
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.

_________________
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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: UTF-16LE-Zeichen
BeitragVerfasst: 07.05.2019 01:02 
Offline
Ein Admin
Benutzeravatar

Registriert: 29.08.2004 20:20
Wohnort: Saarbrücken
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

_________________
Freakscorner.de - Der Bastelkeller | Neustes Video: Neje DK - 1 Watt Laser Engraver
Ubuntu Gnome 18.04.1 LTS x64, PureBasic 5.60 x64 (außerdem 4.41, 4.50, 4.61, 5.00, 5.10, 5.11, 5.21, 5.22, 5.30, 5.31, 5.40, 5.50)
"Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen – Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: UTF-16LE-Zeichen
BeitragVerfasst: 07.05.2019 02:07 
Offline
Benutzeravatar

Registriert: 22.02.2008 20:49
Wohnort: Utah, USA
UTF-16, UTF-16 LE, UTF-16 BE: haben entweder 2 oder 4 Bytes (für Surrogate).

Unicode and PureBasic

_________________
Bild


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye