Ermittelt die Text-Kodierung einer Datei.
FileGetEncoding ( "filehandle/filename" [, mode = 1] )
filehandle/filename | Das Handle einer Datei, wie es durch einen vorherigen Aufruf von FileOpen() zurückgegeben wurde. Alternativ kann als erster Parameter auch ein Dateiname als Zeichenfolge verwendet werden. |
mode | [optional] Der zu nutzende UTF8 Erkennungsmodus. $FE_ENTIRE_UTF8 (1) = Untersucht ganze Dateien nach UTF8 Sequenzen. (Standard) $FE_PARTIALFIRST_UTF8 (2) = Untersucht den ersten Teil einer Datei nach UTF8 Sequenzen. (Der Gleiche, den FileOpen() standardmäßig nutzt) Die Konstanten sind in FileConstants.au3 definiert. |
Erfolg: | Die Dateikodierung unter Verwendung der gleichen Werte wie die FileOpen() Funktion. $FO_UTF16_LE (32) = UTF16 Little Endian. $FO_UTF16_BE (64) = UTF16 Big Endian. $FO_UTF8 (128) = UTF8 (mit BOM). $FO_UTF8_NOBOM (256) = UTF8 (ohne BOM). $FO_ANSI (512) = ANSI (enthält die Zeichen > 127 und < 255) |
Fehler: | -1. |
Wenn der Dateiname anstatt eines Dateihandles angegeben wird, wird die Datei während des Funktionsaufrufes nur geöffnet und geschlossen.
Achtung: Dateihandles und Dateinamen nicht gleichzeitig verwenden! Beispielsweise öffnet man die Datei nicht mit FileOpen() und benutzt dann den Dateinamen in dieser Funktion. Entweder man verwendet Dateihandles oder Dateinamen in den eigenen Routinen, nicht beides zusammen!
Wird ein Dateihandle verwendet, hat der "mode" Parameter keinen Effekt - der FileOpen() Modus ist vorrangig.
FileOpen, FileRead, FileReadLine, FileWrite, FileWriteLine
#include <MsgBoxConstants.au3>
Example()
Func Example()
Local $iEncoding = FileGetEncoding(@ScriptFullPath) ; Liest die Zeichenkodierung der Scriptdatei aus
If @error Then
MsgBox($MB_SYSTEMMODAL, "Error", "Konnte keine Kodierung auslesen.")
Else
MsgBox($MB_SYSTEMMODAL, "FileGetEncoding", "Der zurückgegebene Wert ist: " & $iEncoding) ; Der zurückgegebene Wert für dieses Beispiel sollte 0 bzw. $FO_ANSI sein.
EndIf
EndFunc ;==>Example