php - 如何使用 PHP 读取 UTF8+BOM 文件而不将 BOM 显示为内容?

标签 php unicode utf-8

问题的意思差不多。我发现了很多关于如何在读入文本后去除字节顺序标记的建议,但这似乎是错误的。语言中是否没有一种标准方法可以通过正确识别和处理 BOM 来读取 Unicode 文件?

最佳答案

遇到了同样的问题。我的函数 _fread() 将删除 bom 并解决了 问题对我来说...

/**
 * Read local file
 * @param   file   local filename
 * @return  Data from file, or false on failure
 */
function _fread ($file = null) {
    if ( is_readable($file) ) {
        if ( !($fh = fopen($file, 'r')) ) return false;
        $data = fread($fh, filesize($file));

        // remove bom
        $bom = pack('H*','EFBBBF');
        $data = preg_replace("/^$bom/", '', $data);

        fclose($fh);
        return $data;
    }
    return false;
}

关于php - 如何使用 PHP 读取 UTF8+BOM 文件而不将 BOM 显示为内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28248518/

相关文章:

java - 将 iso 格式编码的字符串转换为 utf-8 编码的另一个字符串时出现问题

unicode - 了解 Unicode : Surrogate Blocks, 非字符

php - DOMDocument->saveHTML() vs urlencode with commercial at symbol (@)

java - Thrift 服务与 RESTful 服务哪个更好?

python - 显示 unicode 和频率时出错

json - 由于表情符号,Go 在 JSON 输出中生成未转义的控制字符

php - 将 where 子句添加到 Doctrine 原生查询构建器

php - 序列化、反序列化、添加元素并再次序列化

c - 如何将带有 BOM 的 UTF8 转换为 UTF16 LE

php mysql查询字符集