You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Delphi DFM文件是否默认始终以ANSI编码保存?

Delphi 11中DFM文件始终以ANSI编码保存的问题解答

这是Delphi的设计特性,并非Bug。

核心原因

Delphi对DFM文件的编码处理有独立于IDE默认文件编码的规则:

  • 传统上,文本格式的DFM文件默认采用当前系统的ANSI代码页保存,IDE的「默认文件编码」设置仅作用于PAS等常规源码文件,不会覆盖DFM的特定编码逻辑。
  • 即使打开原本是UTF-8编码的DFM文件,在Delphi中编辑保存后,IDE会自动将其转换回系统ANSI编码,这是由DFM文件的原生处理机制决定的。

官方文档依据

Embarcadero的Delphi官方文档中明确说明:

文本格式的表单文件(.dfm)默认使用当前系统的ANSI代码页进行存储。若需要以UTF-8编码保存DFM,需通过显式配置实现。

强制DFM使用UTF-8的方法

若要让DFM文件以UTF-8编码保存,可通过以下两种方式:

  • 单文件级别:在文本格式的DFM文件最顶部添加{$CODEPAGE UTF8}指令,保存后该文件会强制以UTF-8编码存储。
  • 项目级别:进入Project > Options > Delphi Compiler > Compiling,找到「Code Page」选项并设置为UTF-8,此项目下所有新建或编辑的DFM文件都会以UTF-8编码保存。

内容的提问来源于stack exchange,提问作者Matthias B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 09:45:36