【问题标题】:Charset and UTF-8 in a downloaded text file on a MacMac 上下载的文本文件中的字符集和 UTF-8
【发布时间】:2010-12-14 02:30:53
【问题描述】:

我们有一个 PHP/MYSQL 应用程序,它收集用户输入,包括特殊字符,如 ø、ü、ñ 等,数据库正在捕获它们,并且可以通过 PHPmyAdmin 看到它们。 windows下下载就好了。在mac浏览器上显示就可以了。

当用户在 Mac OSX 上下载文本文件时,unicode 字符会作为其他字符出现。如果我将 PHP 文件与带有 BOM 的 UTF-8 一样保存(这显然会影响 PHP 输出),它们会显示为黑色小菱形。

这是我正在使用的输出标题

mb_http_output("UTF-8"); header('内容类型:application/xml; charset="utf-8"'); header("内容配置:附件;文件名=file.xml"); 死($文本);

非常感谢任何提示!

【问题讨论】:

  • 我在 mac 上使用 textwrangler,我认为这是有信誉的。 Apikot 的回答在 ø 字符作为另一个单个字符出现的特定情况下确实有所帮助。谢谢阿皮科特!可能会发生两件事@Cal这是一个像你描述的例子,Bülowstr。 30、Köln 但这也出现在 phpMyAdmin 中,我认为 MYSQL 排序规则应该是 utf-8。谢谢你们!

标签: php macos utf-8 character-encoding


【解决方案1】:

可能有几处错误,但听起来您在 Mac 上打开文件的编辑器没有将文件识别为 UTF-8,即使它是。重音字符是否每个都显示为两个字符,第一个是大写 A?这意味着您正在查看 UTF-8 字节,将它们视为 Latin-1。

如果您可以将生成的文件上传到某个地方会更容易确定:)

【讨论】:

    【解决方案2】:

    你试过了吗:

    $text = utf8_encode($text);
    die($text);
    

    ?

    【讨论】:

    • 我怀疑这并不像你认为的那样。 utf8_encode() 将 Latin-1/ISO-8859-1 字符串转换为 UTF-8。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    • 2015-01-11
    • 1970-01-01
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    相关资源
    最近更新 更多