在php中检测和/或更改文件的编码

时间:2014-08-20 18:15:27

标签: php encoding fgets

我有以下php代码。它会读出客户端上传的文件(在Drupal站点中)。

$fp = fopen($fileUri, 'r');
$buffer = 4096;
while(($line = fgets($fp, $buffer)) ){
    if (preg_match("/last update/", $line)) {
       // do something here...
    }
}

但是,当用户使用UCS-2LE编码上传文件时,永远不会达到“在这里做某事”。使用ANSI或UTF-8,一切正常。

我尝试使用mb_convert_encoding转换编码和/或使用mb_detect_encoding检测编码。我也试过iconv。似乎没什么用。

那么,当我不知道客户端文件的编码是什么时,确保preg_match工作的最佳方法是什么?

更新

我的表单有accept-charset=UTF-8,这些是我的请求标题:

request headers

0 个答案:

没有答案