【问题标题】:Php application encoding problems from ISO-8859-1 to UTF-8从 ISO-8859-1 到 UTF-8 的 PHP 应用程序编码问题
【发布时间】:2012-12-23 20:19:40
【问题描述】:

我正在尝试将 php 应用程序从 ISO-8859-1 编码为 UTF-8。制作了应用程序的测试副本,运行以下 iconv 以递归修改所有文件。

find . -type f -print -exec iconv -f iso8859-1 -t utf-8 -o {}.converted {} \; -exec mv {}.converted {} \;

以上内容并没有真正发挥作用。代码仍然有如下文本:

não exibe nenhuma info durante a configuração. será setado adequadadmente

带有测试php脚本

<?php
$text = "não exibe nenhuma info durante a configuração. será setado adequadadmente";

echo 'Original : ', $text, PHP_EOL;
echo 'TRANSLIT : ', iconv("ISO-8859-1", "UTF-8//TRANSLIT", $text), PHP_EOL;
echo 'IGNORE   : ', iconv("ISO-8859-1", "UTF-8//IGNORE", $text), PHP_EOL;
echo 'Plain    : ', iconv("ISO-8859-1", "UTF-8", $text), PHP_EOL;

?>

输出是:

Original : não exibe nenhuma info durante a configuração. será setado adequadadmente
TRANSLIT : não exibe nenhuma info durante a configuração. será setado adequadadmente
IGNORE   : não exibe nenhuma info durante a configuração. será setado adequadadmente
Plain    : não exibe nenhuma info durante a configuração. será setado adequadadmente

【问题讨论】:

  • 您确定您的原始代码是 ISO8859-1 吗?看起来您“双重转换”为 UTF-8(即告诉 iconv 将 UTF-8 读取为 ISO8859-1 并将其转换为 UTF-8)
  • 确实 nã 已经是 UTF-8,但你必须告诉你的浏览器它是。
  • 能不能换成普通字符
  • 恢复备份并从头开始。你做错了什么。

标签: php encoding utf-8 character-encoding iso-8859-1


【解决方案1】:

您的文件很好,并且是 UTF-8,您只是在 CP1252/ISO-8859-1 中解释它。您需要向浏览器和文本编辑器声明编码。

header("Content-Type: text/html; charset=utf-8");

在您的文本编辑器中,指定文件为 UTF-8,它将正确显示字符。不要进行任何转换。

【讨论】:

    猜你喜欢
    • 2016-10-04
    • 2011-09-23
    • 1970-01-01
    • 2012-09-04
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多