![]() |
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. |
AW: UTF8 und UTF8 mit BOM und dann auch noch Java
Was liefert denn
Delphi-Quellcode:
? Ist da unter Android schon ein BOM mit drinne, bei Windows aber nicht?
Buffer := Encoding.GetBytes(GetTextStr);
Das müsste doch 'ne Methode von TStrings sein, gibt es da Unterschiede? |
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 14:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz