Function Reference


Determines the text encoding used in a file.

FileGetEncoding ( "filehandle/filename" [, mode = 1] )


filehandle/filename The handle of a file, as returned by a previous call to FileOpen(). Alternatively you may use a string filename as the first parameter.
mode [optional] The UTF8 detection mode to use.
    $FE_ENTIRE_UTF8 (1) = Check entire file for UTF8 sequences (default)
    $FE_PARTIALFIRST_UTF8 (2) = Check first part of file for UTF8 sequences (the same as FileOpen() uses by default)

Constants are defined in FileConstants.au3.

Return Value

Success: the file encoding using similar values to the FileOpen() function:
    $FO_UTF16_LE (32) = UTF16 Little Endian.
    $FO_UTF16_BE (64) = UTF16 Big Endian.
    $FO_UTF8 (128) = UTF8 (with BOM).
    $FO_UTF8_NOBOM (256) = UTF8 (without BOM).
    $FO_ANSI (512) = ANSI (containing char > 127 and < 255)
Failure: -1.

Constants are defined in FileConstants.au3.


If a filename is given rather than a file handle - the file will be opened and closed during the function call.
Note: Do not mix filehandles and filenames, i.e., don't FileOpen() a file and then use a filename in this function. Use either filehandles or filenames in your routines, not both!

If a file handle is used then the "mode" parameter has no effect - the mode used for FileOpen() takes precedence.


FileOpen, FileRead, FileReadLine, FileWrite, FileWriteLine


#include <MsgBoxConstants.au3>


Func Example()
    Local $iEncoding = FileGetEncoding(@ScriptFullPath) ; Retrieve the file encoding of the current script.
    If @error Then
        MsgBox($MB_SYSTEMMODAL, "", "Error: Could not obtain the file encoding.")
        MsgBox($MB_SYSTEMMODAL, "", "FileGetEncoding: The value returned was: " & $iEncoding) ; The value returned for this example should be 0 or $FO_ANSI.
EndFunc   ;==>Example