Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   UTF8 und UTF8 mit BOM und dann auch noch Java (https://www.delphipraxis.net/207497-utf8-und-utf8-mit-bom-und-dann-auch-noch-java.html)

AndyDF 1. Apr 2021 12:36

AW: UTF8 und UTF8 mit BOM und dann auch noch Java
 
Ja, merkwürdig ist das auf alle Fälle. Hatte mir auch das TStrings.SaveToStream() angesehen.
Zumal das WriteBOM auch bei Android in meinem Fall schon zieht. Ist es gesetzt, wird der BOM zwei mal angehangen. Ohne nur einmal.

Debugger geht leider mit der Android App nicht so zuverlässig bei mir.

Delphi.Narium 1. Apr 2021 15:11

AW: UTF8 und UTF8 mit BOM und dann auch noch Java
 
Was liefert denn
Delphi-Quellcode:
Buffer := Encoding.GetBytes(GetTextStr);
? Ist da unter Android schon ein BOM mit drinne, bei Windows aber nicht?

Das müsste doch 'ne Methode von TStrings sein, gibt es da Unterschiede?

Bbommel 2. Apr 2021 16:24

AW: UTF8 und UTF8 mit BOM und dann auch noch Java
 
Ich war jetzt mal neugierig und habe mich da mal etwas durchgehangelt. Am Ende landet man in der Funktion "LocaleCharsFromUnicode" in der Unit "System", welche die eigentliche Arbeit des Konvertierens macht. Und diese Arbeit macht sie wiederum nicht selber, sondern lässt sie vom Betriebssystem machen. Unter Windows wird dazu die Funktion "WideCharToMultiByte" aufgerufen, unter Posix-Systemen entweder mit dem Aufruf von u_strToUTF8WithSub oder von iconv, jenachdem ob die ICU-Bliothek installiert ist.

Uff. ;-) Ich nehme an, dass sich da ein Aufruf tatsächlich anders verhalten kann. Vielleicht wird ja unter Android u_strToUTF8WithSub benutzt und liefert immer ein BOM mit? Das müsste man dann wirklich debuggen oder weiter recherchieren, aber ich hab hier für die Android-Entwicklung nichts eingerichtet. Wenn es so wäre, dass da immer ein BOM rauspurzelt, dann wäre das ja ein Bug, vor allem, wenn zwei BOMs rauskommen. Da könnte man dann einen Eintrag im QP aufmachen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:41 Uhr.
Seite 4 von 4   « Erste     234   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz