【发布时间】: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