字符串中的不可打印字符-php
我正在调试Drupal模块(此模块为webform_import,将CSV数据导入数据库),并获取一些不可打印的字符,导致模块中出现错误。这是我的调试代码字符串中的不可打印字符-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
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”,模块正常工作