</head> <body> <h1>FileEncoding <span class="ver">[AHK_L 42+]</span></h1> <p>为 <a href="FileRead.htm">FileRead</a>, <a href="FileReadLine.htm">FileReadLine</a>, <a href="LoopReadFile.htm">Loop Read</a>, <a href="FileAppend.htm">FileAppend</a> 和 <a href="FileOpen.htm">FileOpen()</a> 设置默认编码.</p> <pre class="Syntax"><span class="func">FileEncoding</span> <span class="optional">, Encoding</span></pre> <h2 id="Parameters">参数</h2> <dl> <dt>Encoding</dt> <dd> <p>如果为空或省略, 则默认为 CP0. 否则, 指定以下字符串之一:</p> <p><strong>CP0:</strong> 系统默认的 ANSI 代码页. 见下文注释.</p> <p><strong>UTF-8:</strong> Unicode UTF-8, 等同于 CP65001.</li> <p><strong>UTF-8-RAW:</strong> 像上面一样, 但创建新文件时不写入字节顺序标记.</li> <p><strong>UTF-16:</strong> Unicode UTF-16 带小端字节顺序标识, 等同于 CP1200.</p> <p><strong>UTF-16-RAW:</strong> 像上面一样, 但创建新文件时不写入字节顺序标记.</p> <p><strong>CP<em>nnn</em>:</strong> 带数值标识符 <em>nnn</em> 的代码页. 请参阅<a href="https://learn.microsoft.com/windows/win32/intl/code-page-identifiers">代码页标识符</a>.</p> </dd> </dl> <h2 id="Remarks">备注</h2> <p>如果没有使用 FileEncoding, 则默认编码为 CP0.</p> <p>CP0 不能普遍地标识单个代码页; 相反, 它对应于系统默认的 ANSI 代码页, 这取决于系统区域设置或 "非 Unicode 程序的语言" 系统设置. 要获得实际的代码页, 请调用 <code>DllCall("GetACP")</code>.</p> <p>内置变量 <strong>A_FileEncoding</strong> 包含当前设置. 如果 CP0 是当前设置, A_FileEncoding 返回一个空值.</p> <p>每个新启动的<a href="../misc/Threads.htm">线程</a>(如<a href="../Hotkeys.htm">热键</a>, <a href="Menu.htm">自定义菜单项</a>或<a href="SetTimer.htm">计时器</a>子例程) 都使用此命令的默认设置重新启动. 可以在<a href="../Scripts.htm#auto">自动执行段</a>(脚本的顶部) 中使用此命令来更改该缺省值.</p> <p>如果文件中存在 UTF-8 或 UTF-16 字节顺序标识, 则不会使用默认编码, 除非文件以只写访问打开(即文件的先前内容被丢弃).</p> <h2 id="Related">相关</h2> <p><a href="FileOpen.htm">FileOpen()</a>, <a href="StrGet.htm">StrGet</a>, <a href="StrPut.htm">StrPut()</a>, <a href="../Compat.htm#FileRead">脚本兼容性</a></p> </body> </html>