我有以下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
,这些是我的请求标题: