Sets the default encoding for FileRead, Loop Read, FileAppend, and FileOpen.

FileEncoding Encoding



Type: String

One of the following values (if omitted, it defaults to CP0):

UTF-8: Unicode UTF-8, equivalent to CP65001.

UTF-8-RAW: As above, but no byte order mark is written when a new file is created.

UTF-16: Unicode UTF-16 with little endian byte order, equivalent to CP1200.

UTF-16-RAW: As above, but no byte order mark is written when a new file is created.

CPnnn: A code page with numeric identifier nnn. See Code Page Identifiers.


A_FileEncoding contains the current setting.

If not otherwise set by the script, the default is CP0.

CP0 does not universally identify a single code page; rather, it corresponds to the system default ANSI code page, which depends on the system locale or "language for non-Unicode programs" system setting. If CP0 is the current setting, A_FileEncoding returns CP0 (never a blank value). To get the actual code page number, call DllCall("GetACP").

Every newly launched thread (such as a hotkey, custom menu item, or timed subroutine) starts off fresh with the default setting for this function. That default may be changed by using this function during script startup.

The default encoding is not used if a UTF-8 or UTF-16 byte order mark is present in the file, unless the file is being opened with write-only access (i.e. the previous contents of the file are being discarded).


FileOpen, StrGet, StrPut, Script Compatibility