我和许多其他 PHP 开发人员一样遇到了字符编码问题,这个问题将概述我为确保我的数据以 UTF8 格式保存和输出所执行的步骤。我想要任何关于我应该考虑和/或改变我目前的想法的建议。
我有一个 mysql 数据库DEFAULT CHARACTER UTF-8
,我的表有排序规则utf8_general_ci
我正在使用 php 脚本从 RSS 提要中读取数据,然后将该数据保存到数据库中。在我保存该数据之前,我通过执行以下操作检查该数据是否为 UTF-8:
protected function _convertToUTF8($content) {
$enc = mb_detect_encoding($content);
return mb_convert_encoding($content, "UTF-8", $enc);
}
将此数据输出到网页时,我在 php 中设置标题
header("Content-type: text/html; charset=utf-8");
我还将 Content-Type 元标记设置为 utf-8
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
到目前为止,一切都按预期工作,我没有输出有趣的字符,一切进展顺利,但是在处理这些数据时我是否应该更改/考虑其他任何事情?
我现在遇到的问题是将此数据输出到 txt 文件 (csv) 我正在使用 fwrite() 已成功创建文件,但我将这个文件传递给第 3 方说该文件不是 UTF-8。我不确定数据是否以 UTF-8 输出,我该如何检查?当通过 SSH 登录到远程服务器Itâs a
时,当我得到 vim 时得到的文件Itâ~@~Ys
时,我得到的文件是我得到的文件时得到的文件It<E2><80><99>s
。我在这里想念什么?
提前致谢!