AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein UTF8 und UTF8 mit BOM und dann auch noch Java

UTF8 und UTF8 mit BOM und dann auch noch Java

Ein Thema von creehawk · begonnen am 30. Mär 2021 · letzter Beitrag vom 2. Apr 2021
Antwort Antwort
Seite 3 von 4     123 4   
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
779 Beiträge
 
Delphi 2009 Professional
 
#21

AW: UTF8 und UTF8 mit BOM und dann auch noch Java

  Alt 30. Mär 2021, 18:04
Nicht schlimm. WriteBOM ist nicht so offensichtlich, da es an einer Stelle definiert ist, an der man es nicht erwartet. Man würde eher die Existenz von TEncodingUTF8NoBOM erwarten, aber TEncoding-Erben können keine „Header“ erstellen (da sie für den Einsatz mit – in sich jedoch gültigen – Teilstrings gedacht sind), oder einen zusätzlichen Parameter bei SaveToFile/SaveToStream. Es fehlt auch z.B. bei TStringStream.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
2.809 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#22

AW: UTF8 und UTF8 mit BOM und dann auch noch Java

  Alt 30. Mär 2021, 20:52
Ich gehe jetzt erstmal Holz hacken. Oder die Wiese hinter HAus umgraben. Oder doch ins Kloster?
Warum nicht alles drei?
  Mit Zitat antworten Zitat
philipp.hofmann

Registriert seit: 21. Mär 2012
Ort: Hannover
560 Beiträge
 
Delphi 10.4 Sydney
 
#23

AW: UTF8 und UTF8 mit BOM und dann auch noch Java

  Alt 31. Mär 2021, 07:48
Du musst deinen Arbeitsansatz ändern:
- Frage im Forum stellen
- Holzhacken gehen
- Antwort im Forum lesen
- kurz den Kopf schütteln
- weiter programmieren

Dann hast du eine Lösung für dein Problem und einen Hof voll gehacktem Holz und bist ausgeglichener.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
4.797 Beiträge
 
Delphi 10.1 Berlin Professional
 
#24

AW: UTF8 und UTF8 mit BOM und dann auch noch Java

  Alt 31. Mär 2021, 08:04
Zitat:
Ich gehe jetzt erstmal Holz hacken.
Ihttps://www.youtube.com/watch?v=MsggONi5frI
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
8.650 Beiträge
 
Delphi 10.4 Sydney
 
#25

AW: UTF8 und UTF8 mit BOM und dann auch noch Java

  Alt 31. Mär 2021, 09:14
Wenn ich mich recht erinnere, waren Adriano's Gründe aber andere.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
AndyDF

Registriert seit: 6. Sep 2006
Ort: Allgäu
98 Beiträge
 
Delphi 10.4 Sydney
 
#26

AW: UTF8 und UTF8 mit BOM und dann auch noch Java

  Alt 31. Mär 2021, 16:44
Habe gerade aktuell ein sehr ähnliches Thema. Ich erzeuge eine Textdatei per
StringList.SaveToFile(Filename,TEncoding.UTF8);
In diesem Fall darf aber kein BOM enthalten sein. Habe auch gleich das WriteBOM gefunden und gesetzt.
Das geht auch wunderbar unter Windows aber leider nicht unter Android.
Da wird der Textdatei immer der BOM angestellt. Es geht sogar soweit, dass bei WriteBOM := true bei Android gleich zwei BOM´s angehängt sind.

Hat hier jemand eine Idee dazu?
Andreas Blenk

Geändert von AndyDF (31. Mär 2021 um 16:54 Uhr)
  Mit Zitat antworten Zitat
Incocnito

Registriert seit: 28. Nov 2016
159 Beiträge
 
#27

AW: UTF8 und UTF8 mit BOM und dann auch noch Java

  Alt 31. Mär 2021, 16:53
Habe gerade aktuell ein sehr ähnliches Thema. Ich erzeuge eine Textdatei per
TStringList.SaveToFile(Data,TEncoding.UTF8);
In diesem Fall darf aber kein BOM enthalten sein. Habe auch gleich das WriteBOM gefunden und gesetzt.
Das geht auch wunderbar unter Windows aber leider nicht unter Android.
Da wird der Textdatei immer der BOM angestellt. Es geht sogar soweit, dass bei WriteBOM := true bei Android gleich zwei BOM´s angehängt sind.

Hat hier jemand eine Idee dazu?
Ist jetzt aber nicht so, dass "Data" bereits schon ein BOM enthält, oder? 🙈

LG Incocnito
  Mit Zitat antworten Zitat
AndyDF

Registriert seit: 6. Sep 2006
Ort: Allgäu
98 Beiträge
 
Delphi 10.4 Sydney
 
#28

AW: UTF8 und UTF8 mit BOM und dann auch noch Java

  Alt 31. Mär 2021, 16:55
Ist jetzt aber nicht so, dass "Data" bereits schon ein BOM enthält, oder? 🙈
LG Incocnito
Nein - natürlich nicht. Habs in meinem Post richtig gestellt.
Andreas Blenk
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
779 Beiträge
 
Delphi 2009 Professional
 
#29

AW: UTF8 und UTF8 mit BOM und dann auch noch Java

  Alt 1. Apr 2021, 11:14
Nimm StringStream, der kennt AFAIK keine BOM.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
572 Beiträge
 
Delphi 10.4 Sydney
 
#30

AW: UTF8 und UTF8 mit BOM und dann auch noch Java

  Alt 1. Apr 2021, 11:25
Merkwürdig ist das aber schon, wenn man sich das SaveToFile von der StringList anschaut, dann läuft das letztlich über SaveToStream und das sieht so aus:

Delphi-Quellcode:
procedure TStrings.SaveToStream(Stream: TStream; Encoding: TEncoding);
var
  Buffer, Preamble: TBytes;
begin
  if Encoding = nil then
    Encoding := FDefaultEncoding;
  Buffer := Encoding.GetBytes(GetTextStr);
  if WriteBOM then
  begin
    Preamble := Encoding.GetPreamble;
    if Length(Preamble) > 0 then
      Stream.WriteBuffer(Preamble, Length(Preamble));
  end;
  Stream.WriteBuffer(Buffer, Length(Buffer));
end;
Da gibt es ja nicht ansatzweise eine andere Behandlung für Android und vor allem auch nichts, weshalb da plötzlich der BOM doppelt drinsteht.

Müsste man vielleicht mal mit dem Debugger durchsteppen, um zu schauen, wo denn das BOM im Buffer/Ergebnis plötzlich auftaucht oder ob es nicht doch schon vorher irgendwie dort reinkommt.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +2. Es ist jetzt 20:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf