我们正在对所有源文件的UTF-8编码进行标准化,以使开发人员更容易使用过多的工具(特别是Windows、Mac和Linux上的IntelliJ IDEA)来处理Git合并冲突,而不会引入不必要的编码更改。
虽然 Delphi 11似乎能够很好地处理UTF-8和ANSI编码的PAS和DFM文件,并且有一个名为“默认文件编码”的配置设置(在Tools〉Options〉Editor下),可以将其默认设置ANSI更改为UTF8,使所有新创建的PAS文件都以UTF-8编码保存,但这似乎并不影响DFM文件。
DFM文件似乎总是以ANSI格式保存。这似乎也适用于最初以UTF-8编码的DFM文件:当我在 Delphi 中编辑它们并重新保存时,它们变成了ANSI。
这是一个特性还是一个bug?如果是一个特性,你能指出一些权威的文档来说明吗?
1条答案
按热度按时间piv4azn71#
DFM文件使用自己的专有编码(#后跟Unicode代码点编号)来存储字符串值中的非ASCII字符。
然而,在 Delphi 的更新版本中,如果标识符(类、属性或组件名称)包含非ASCII字符,则文本形式的DFM文件可以使用UTF-8自动存储。
来自用于 Delphi 11 Alexandria 的documentation:
组件流(文本DFM文件):