gpt4 book ai didi

unicode - 如何 "force"文件的 ISO-8859-1ness?

转载 作者:行者123 更新时间:2023-12-04 15:27:41 24 4
gpt4 key购买 nike

我记得当我曾经在日本开发网站时——那里有三种不同的货币字符编码——开发人员有一个技巧来“强制”对源文件进行编码,以便它始终以正确的编码在他们的 IDE 中打开。

他们所做的是在包含仅存在于该特定字符编码中的日语字符的文件顶部添加注释——它不存在于任何其他字符编码中!这工作得很好。

我记得这是因为现在我有一个类似的问题,尽管是英语国家。

我有一些文件必须是 ISO-8859-1,但在我的编辑器(Linux 上的 Bluefish 1.0.7)中继续打开为 UTF-8。除了英镑 (£) 符号等,这通常不是问题。不要误会我的意思,我可以修复该文件并将其再次保存为 ISO-8859-1,但我希望它始终在我的编辑器中以 ISO-8859-1 格式打开。

那么,是否有任何类型的字符黑客 - 就像我上面提到的 - 来做到这一点?还是有其他方法?

附注。 Unicode 倡导者/福音传道者不必浪费时间试图让我皈依,因为我已经是他们中的一员了!这是我继承的一个摇摇欲坠的旧系统:-(

聚苯乙烯。请不要说“使用不同的编辑器”,因为我是个老屁,并且我的方式:-)

最佳答案

通常,如果您有 £编码为 ISO-8859-1(即单个字节 0xA3),这不会构成有效的 UTF-8 字节序列的一部分,除非你不走运并且它紧跟在这样的另一个顶部位集字符之后一种使它们作为 UTF-8 序列一起工作的方法。 (您可以通过在文件顶部单独放置一个 £ 来防止这种情况发生。)

所以没有编辑器应该打开任何像 UTF-8 这样的文件;如果是这样,它会丢失 £完全地。如果你的编辑器这样做了,“使用不同的编辑器”——说真的!如果您的问题是您的编辑器正在加载不包含 £ 的文件或任何其他非 ASCII 字符作为 UTF-8,导致任何新的 £你添加到它们之后保存为 UTF-8,然后再次简单地添加一个 £字符本身到文件的顶部当然应该停止。

您不一定要做的是让编辑器将其加载为 ISO-8859-1,而不是所有单个 top-bit-set 字节都有效的任何其他字符集。它只是像 UTF-8 和 Shift-JIS 这样的多字节编码,您可以通过使用对该编码无效的字节序列来排除它们。

在 Windows 上通常会发生的是,编辑器将使用系统默认代码页加载文件,在西方机器上通常为 1252。 (实际上与 ISO-8859-1 不完全相同,但很接近。)

一些编辑器有一个功能,你可以给他们一个提示,在第一行的注释中使用什么编码,例如。对于vim:

# vim: set fileencoding=iso-8859-1 :

语法因编辑器而异。但它通常很丑陋。可能存在其他控件来更改基于目录的默认编码,但由于我们不知道您在使用什么......

从长远来看,存储为 ISO-8859-1 或任何其他非 UTF-8 编码的文件当然需要消失。 :-)

关于unicode - 如何 "force"文件的 ISO-8859-1ness?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3214830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com