【问题标题】:How to check file encoding in Linux? Handling multilingual scripts如何在 Linux 中检查文件编码?处理多语言脚本
【发布时间】:2011-01-22 08:05:47
【问题描述】:
我的公司有 php 脚本,其中包含不同语言(包括法语、德语、西班牙语、意大利语和英语)的文本。
开发人员决定使用 Latin-1 编码作为每个人的基础,这样就没有人会覆盖文件编码并破坏其中的外语。 (一开始有些开发者使用html实体,但这种方式不是首选)
我有几个问题要问你:
- 如何在 linux 上检查文件编码?
- 如果您有处理不同语言文件的经验,您是如何设法不覆盖其他语言的编码的?
提前感谢您的任何建议
【问题讨论】:
标签:
php
linux
unix
shell
encoding
【解决方案1】:
1.我使用iconv来回转换,但由于您不知道编码,请先尝试enca(非常幼稚的字符集分析器)。但总的来说,很难做到正确,因为它需要了解常用词等。
2. 唯一明智的方法是为此使用更大的字符集,例如 unicode。您可以通过在源代码控制系统中添加一个预签入挂钩来强制执行此操作,该挂钩仅允许正确格式化的 utf-8 文件(例如)。
【解决方案2】:
file 为您提供有关文件的信息,包括字符集、语言等。具体取决于文件类型。
使用 --mime-encoding 只获取你想要的信息。
【解决方案3】:
开发人员决定使用 Latin-1 编码作为每个人的基础,这样就没有人会覆盖文件编码并破坏其中的外语。
Latin-1 无法处理大多数语言。 Unicode 风格(通常是 UTF-8)是首选。
如何在 linux 上检查文件编码?
使用file 实用程序。但它只能猜测。
如果您有处理不同语言文件的经验,您是如何设法不覆盖其他语言的编码的?
合理配置的编辑器。
【解决方案4】:
没有可靠的方法来检查文件的编码;不经检查,各种 8 位单字节编码几乎无法区分。在任何地方使用 UTF-8 意味着每个人都可以使用单一、普遍有效的编码。