【问题标题】:ISO-8859-1 and MacRoman EncodingISO-8859-1 和 MacRoman 编码
【发布时间】:2011-02-12 13:26:36
【问题描述】:

我有一个 MySQL 数据库表,其中包含一个包含用户名的 ISO-8859-1 编码文本字段。当我使用 PHP 将其导出到文本文件时,我会在客户端计算机上保存一个普通的文本文件。当我在 Windows 系统上的 Word 或 Excel 中打开它时,它看起来不错。当我在 Mac 上使用 Word 或 Excel 打开它时,高 ascii 字符是错误的。

我知道这是因为 Mac 使用 MacRoman 而 Windows 使用 ISO-8859-1。我的问题是如何编写一个可以在两个平台上打开并在两个平台上都看起来不错的文本文件?

是否有一些我可以环绕文本的 XML 变体,可以让 Word 了解它是 ISO-8859-1 编码的事实?我可以在 TXT 文件上撒上什么魔法粉来让操作系统知道它正在使用另一种编码方案?

【问题讨论】:

    标签: php xml unicode text-files


    【解决方案1】:

    ...我在客户端计算机上保存了一个普通的文本文件

    您实际上获得了特定编码的文本。假设它是 ISO-8859-1。

    我知道这是因为 Mac 使用 MacRoman 而 Windows 使用 ISO-8859-1。我的问题是如何编写一个可以在两个平台上打开并在两个平台上都看起来不错的文本文件?

    打开文本文档的软件必须知道字符集编码。有时,它可以使用一些启发式来猜测它,有时它不会尝试猜测(并使用它自己的默认值),有时你可以让他问你使用什么编码。 See here

    只要我们谈论的是纯文本文件,没有通用方法可以保证每个用户都会以正确的编码打开它。在某些其他格式(例如 HTML)中,可以将编码指定为文档本身的一部分。

    【讨论】:

    • 我想我正在寻找一些“非纯”文本文件格式。 XML、MIME 等。两个平台上的 Word/Excel 可以正确读取的一些常见格式。包含 HTML 中的字符集元标记之类的信息。
    • 我认为,如果您将其转换为 UTF-8 编码,使用 BOM,大多数软件都会正确检测到它。如果没有,您始终可以将其包装在带有字符集规范和 PRE 标记的 html 页面中...这取决于您的场景(它是一个自动化过程吗?必须由“内部”人员阅读吗?演示文稿是否重要等)
    猜你喜欢
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-26
    • 2018-02-21
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多