相关疑难解决方法(0)

在PHP中检测文件编码

我有一个脚本,它将多个文件合并为一个,当其中一个文件具有UTF8编码时,它会中断.我认为我应该utf8_decode()在读取文件时使用该函数,但我不知道如何判断哪个需要解码.

我的代码基本上是:

$output = '';
foreach ($files as $filename) {
    $output .= file_get_contents($filename) . "\n";
}
file_put_contents('combined.txt', $output);
Run Code Online (Sandbox Code Playgroud)

目前,在UTF8文件的开头,它在输出中添加了这些字符: 

php utf-8 character-encoding

24
推荐指数
3
解决办法
9万
查看次数

在PHP中测试UTF8字符串,这是一种可靠的方法吗?

我在另一个答案中找到了一个有用的功能,我想知道是否有人可以向我解释它在做什么以及它是否可靠.我正在使用mb_detect_encoding()但是在从Linux操作系统上的ISO8859-1文件中读取时它已被删除.

这个功能似乎适用于我测试过的所有情况.

这是一个问题:获取文件编码

这是功能:

function isUTF8($string){
    return preg_match('%(?:
    [\xC2-\xDF][\x80-\xBF]              # Non-overlong 2-byte
    |\xE0[\xA0-\xBF][\x80-\xBF]         # Excluding overlongs
    |[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}  # Straight 3-byte
    |\xED[\x80-\x9F][\x80-\xBF]         # Excluding surrogates
    |\xF0[\x90-\xBF][\x80-\xBF]{2}      # Planes 1-3
    |[\xF1-\xF3][\x80-\xBF]{3}          # Planes 4-15
    |\xF4[\x80-\x8F][\x80-\xBF]{2}      # Plane 16
    )+%xs', $string);
}
Run Code Online (Sandbox Code Playgroud)

这是检测UTF8字符串的可靠方法吗?到底是做什么的?它可以变得更强大吗?

php string utf-8

5
推荐指数
1
解决办法
7621
查看次数

标签 统计

php ×2

utf-8 ×2

character-encoding ×1

string ×1