Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   IDE Dateicodierung: was sollte man da einstellen (https://www.delphipraxis.net/212984-ide-dateicodierung-sollte-man-da-einstellen.html)

ggscholz 2. Mai 2023 19:44

IDE Dateicodierung: was sollte man da einstellen
 
Liste der Anhänge anzeigen (Anzahl: 1)
In der IDE kann ich unterhalb des Editors die Dateicodierung einstellen.
  • Was sollte da eingestellt sein?
  • Welche Auswirkung haben unterschiedliche Codiereinstellungen in einem Projekt

Schon jetzt herzlichen Dank für die Hilfe

Grüße Gerd

jaenicke 2. Mai 2023 20:07

AW: IDE Dateicodierung: was sollte man da einstellen
 
Darum kümmert sich die IDE automatisch. Wenn du z.B. chinesische Schriftzeichen einfügst, kommt die Frage, ob du zu UTF-8 wechseln möchtest, weil diese nicht als Ansi Zeichen gespeichert werden können.

Unter Windows ist UTF-16 verbreitet, sprich 2 Byte pro Zeichen, während unter Linux UTF-8 üblich ist. Wenn du etwas einstellst, wird dies als Byte Order Mark am Anfang der Datei gespeichert, so dass das Encoding beim Öffnen entsprechend identifiziert werden kann.

himitsu 2. Mai 2023 21:34

AW: IDE Dateicodierung: was sollte man da einstellen
 
Wenn man seinen Code teilt, oder z.B. bei Verwendung von sowas wie GitHub, muß sollte man leider auch besser immer auf UTF-8 umgestellt haben.

Denn ein Ä wäre ja nur im deutschen ein Ä, obwohl es sich bei uns auch ohne UTF-8 speichern lässt.


Außerdem ist der DiffViewer von Github saudämlich und nimmt alles ohne BOM als UTF-8 an, was die Anzeige des besagten Ä bissl doof aussehen lässt.
Linux halt ... im Windows war dagegen es vor allem früher Gang und Gebe, dass Dateien ohne BOM meistens ANSI sind, bzw. unter DOS noch OEM waren.



Ich bin mir grade nicht sicher, aber ich glaube seit Kurzem gab es im Delphi irgendwo eine Option, wo man die Standard-Codierung einstellen kann.
[ADD] Jo man. Tools > Optionen > Benutzeroberfläche > Editoroptionen > Standardkodierung

ggscholz 4. Mai 2023 15:23

AW: IDE Dateicodierung: was sollte man da einstellen
 
Danke für die Antworten, ganz schlau bin ich aber noch nicht.

Bei mir geht es aktuell um eine WIN 32 Anwendung, die mit GIT verwaltet wird. Da wäre jetzt laut himitsu UTF8 richtig, aber nicht ganz.

Was ist BOM?

Und jaenicke empfiehlt UTF-16

In dem Auswahlfenster gibt es UTF-8, UTF-16BE oder UTF-16LE

Ich würd's gerne nur richtig einstellen, ohne unbedingt in die Tiefen der Codierung und und seiner Klippen einzusteigen. In Asien werde ich definitiv nicht mit meinem Programm auftauchen.

Grüße Gerd

Gausi 4. Mai 2023 15:44

AW: IDE Dateicodierung: was sollte man da einstellen
 
BOM ist das Byte-Order-Mark. Darüber wird festgelegt, in welcher Reihenfolge die Bytes für ein Zeichen in die Datei geschrieben werden, falls für die Codierung mehr als ein Byte benutzt wird. Der Unterschied zwischen UTF16LE und -BE liegt dann in der Reihenfolge, wie die (meistens) 2 Bytes geschrieben werden. Das BOM dafür ist iirc $FFFE bzw. $FEFF. Für UTF-8 $EF BB BF.

Mit UTF-8 macht man imho nichts verkehrt, auch unter Windows nicht.

Zitat:

Zitat von himitsu (Beitrag 1521932)
im Windows war dagegen es vor allem früher Gang und Gebe, dass Dateien ohne BOM meistens ANSI sind, bzw. unter DOS noch OEM waren.

Nuja, in älteren Windows (d.h. XP, ggf. auch noch Windows 7) gab es da aber auch so komische Heuristiken, z.B. in Notepad. Wenn man damit eine neue Textdatei erstellt hat und "Blödsinn" reingeschrieben hat, dann sah man beim nächsten Öffnen nur 4 chinesische Zeichen. Die 16-Byte-ANSI-Datei wurden für UTF16 gehalten. ;-)

himitsu 4. Mai 2023 16:34

AW: IDE Dateicodierung: was sollte man da einstellen
 
Jupp, Delphi prüft inwischen wenn ohne BOM
und auch das "neue" Notepad (Editor) prüft inzwischen
aber ...

Auch haben die es repariert, dass wenn die Datei ohne BOM geladen wurde, sie auch wieder ohne BOM gespeichert wird (XE lädt auch UTF-8 ohne BOM problemlos, aber speichert es dann oft mit BOM ab)



Frag mal die Wiki :zwinker:
ByteOrderMark ... eine Markierung am Dateianfang, wie die nachfolgenden Bytes kodiert sind

Es gibt ANSI (ohne BOM)
UTF-8 ohne BOM
* im Linux Standard
* im Windows meisten Standard=ANSI
* * "einige" Programme prüfen, wenn kein BOM da ist, ob es sich als UTF-8 laden lässt (ja=UTF-8 und nein=ANSI)
* * andere laden es dann oft blind als ANSI (womit dann die Umlaute nicht mehr stimmen)
UTF-8 mit BOM
UCS2 bzw. UTF-16 mit BOM (einmal sorum oder die zwei Bytes jedes Chars in anderer Reihenfolge)




Bei UTF-8 mit BOM ist klar, dass es UTF-8 ist.
Ohne BOM, kommt es drauf an, ob und wie jedes Programm reagiert.

Im Gegenzug gibt es aber auch Programme, die wollen unbedingt UTF-8, aber ohne BOM.
Das BOM ist in Wirklichkeit ein Unicode-Zeichen #$FEFF.
Auch das $EF BB BF vom UTF-8 ist die utf8-codierte Darstellung dieses $FEFF.
Jene Programme würden dann als erstes das "Zeichen" $FEFF finden und wenn sie es nicht mögen, dann knallen sie gern. (z.B. die Linux-Version der PSQL.exe des PostgreSQL)




Im Prinzip mal Emba fragen, ob sie die neue Default-Einstellung dieser IDE-Option auf UTF-8 setzen, anstatt auf ANSI.

jaenicke 4. Mai 2023 17:24

AW: IDE Dateicodierung: was sollte man da einstellen
 
Ja, die IDE schlägt selbst auch UTF-8 vor. Windows selbst nutzt UTF-16, was aber keinerlei Kompatibilitätsprobleme macht (anders als bei Lazarus).

himitsu 4. Mai 2023 17:34

AW: IDE Dateicodierung: was sollte man da einstellen
 
Sie schlägt es aber "normal" nur vor, wenn etwas in der Datei steht, was nicht ins ANSI passt.

Wäre doch bestimmt zu praktisch, wenn sie neue Dateien direkt immer gleich als UTF-8 erzeugt. (ÄÖÜ... passt ja ins ANSI rein, zumindestens bei den Deutschen, aber im GitHub-Diff sieht es grauenhaft aus)

Sherlock 5. Mai 2023 09:37

AW: IDE Dateicodierung: was sollte man da einstellen
 
Der Vollständigkeit halber:
BE = Big endian
LE = Little endian

Sherlock

Uwe Raabe 5. Mai 2023 09:58

AW: IDE Dateicodierung: was sollte man da einstellen
 
Zitat:

Zitat von himitsu (Beitrag 1522015)
Wäre doch bestimmt zu praktisch, wenn sie neue Dateien direkt immer gleich als UTF-8 erzeugt.

Deswegen kann man das ja einstellen. Mittlerweile direkt in der IDE, bei älteren Versionen auch über die Registry.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:23 Uhr.
Seite 1 von 2  1 2      

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