FileEncoding [AHK_L 42+]

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

FileEncoding , Encoding

Parameters

Encoding

If blank or omitted, it defaults to CP0. Otherwise, specify one of the following strings:

CP0: The system default ANSI code page. See remarks below.

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.

Remarks

If FileEncoding is not used, the default encoding 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. To get the actual code page number, call DllCall("GetACP").

The built-in variable A_FileEncoding contains the current setting. If CP0 is the current setting, A_FileEncoding returns a blank value.

Every newly launched thread (such as a hotkey, custom menu item, or timed subroutine) starts off fresh with the default setting for this command. That default may be changed by using this command in the auto-execute section (top part of the script).

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