Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
字符串中的不可打印字符-php_Php_Character Encoding - Fatal编程技术网

字符串中的不可打印字符-php

字符串中的不可打印字符-php,php,character-encoding,Php,Character Encoding,我正在调试Drupal模块(此模块为webform_import,将CSV数据导入数据库),并获取一些不可打印的字符,导致模块中出现错误。这是我的调试代码 if($v == 'semester'){ dpm('found ' . $v); } else { dpm('not found ' . $v); dpm(str_split($v)); } dpm($v); 变量$v通过以下函数传递 function _webform_import_csvfieldtrim($v

我正在调试Drupal模块(此模块为webform_import,将CSV数据导入数据库),并获取一些不可打印的字符,导致模块中出现错误。这是我的调试代码

if($v == 'semester'){
    dpm('found ' . $v);
}
else
{
    dpm('not found ' . $v);
    dpm(str_split($v));
}
dpm($v);
变量$v通过以下函数传递

function _webform_import_csvfieldtrim($value) {
  $value = trim($value);
  // Strip off the beginning and ending quotes if necessary.
  $value = preg_replace('/^".*"$/', '', $value);
  // Remove control characters. Some editors add invalid EOL chars.
  // fgetcsv does not handle unicode characters therefore we replace them
  // manually. See http://bugs.php.net/bug.php?id=31632.
  $value = str_replace('\x00..\x1F\xfe\xff', '', $value);
  //$value = str_replace('/[\x00-\x1F\x80-\xFF]/', '', $value);

  return $value;
}
这是我调试的输出

根据输出,$v打印'sement',但不等于字符串'sement',当转换为数组时,有11个字符,而不是8个字符。如果_webform _import _csvfieldtrim函数出现问题,请告知我。此外,我还将CSV文件的编码转换为UTF-8


谢谢。

前3个不可见字符是BOM。我将编码更改为“无BOM的UTF-8”,模块工作。

前3个不可见字符是BOM。我将编码改为“UTF-8无BOM”,模块正常工作