Delphi - 获取给定文件的编码

发布于 2025-01-02 02:24:16 字数 877 浏览 0 评论 0原文

我读过这个问题,我认为它会给我我所追求的:

当 BOM(字节顺序标记)丢失时,如何最好地猜测编码?

我想知道是否有其他方法来获取文件编码,不使用D2006 中的 Mozilla i18n 组件?我无法使用其他 3d 方组件。

我已阅读原始问题的所有答案,但我无法使用提供的接口,因为客户端不接受该 dll 的部署:

原始问题中提供的一些链接已失效,没有一个链接能解决我的问题,即:
如何在不使用第三方组件的情况下获取文件编码?

I have read this question which I thought would give me what I was after:

How Can I Best Guess the Encoding when the BOM (Byte Order Mark) is Missing?

I would like to know if there is another way to get the file encoding, without using Mozilla's i18n component in D2006? I can not use other 3d party components.

I have read the all the answers from original question, and I can not use the interface provided because the client doesn't accept the deployment of that dll:

Some of the links provided in the original question are dead, and none address my problem, which is:
How to get the file encoding without using 3rd party components?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

歌入人心 2025-01-09 02:24:16

我会首先查找 BOM,如果未找到,则调用 IsTextUnicode。但请注意,没有任何方法是万无一失的。

I would look for a BOM first and if one is not found call IsTextUnicode. But beware that no method is foolproof.

2025-01-09 02:24:16

确定文件的编码似乎是有问题的。某些 UTF8 文件似乎没有 BOM。这似乎有效:

InputData.LoadFromFile(f,TEncoding.UTF8);
if InputData.count=0 then
  InputData.LoadFromFile(f);

是否有更好的方法。我知道这个解决方案不是很优雅。

Determining the encoding of a file seems to be problematic. It appears that some of the UTF8 files do not have a BOM. This appears to work:

InputData.LoadFromFile(f,TEncoding.UTF8);
if InputData.count=0 then
  InputData.LoadFromFile(f);

Is there a better approach. I know this solution isn't very elegant.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文