我遇到了类似的问题,还从 CSV 加载电子邮件并遇到“无法检测”的空白问题。
通过用 '' 替换最常见的 urlencoded 空白字符来解决它。如果不能使用 mb_detect_encoding() 和/或 iconv() 这可能会有所帮助
$urlEncodedWhiteSpaceChars = '%81,%7F,%C5%8D,%8D,%8F,%C2%90,%C2,%90,%9D,%C2%A0,%A0,%C2%AD,%AD,%08,%09,%0A,%0D';
$temp = explode(',', $urlEncodedWhiteSpaceChars); // turn them into a temp array so we can loop accross
$email_address = urlencode($row['EMAIL_ADDRESS']);
foreach($temp as $v){
$email_address = str_replace($v, '', $email_address); // replace the current char with nuffink
}
$email_address = urldecode($email_address); // undo the url_encode
请注意,这不会删除“正常”空格字符,而是会从字符串中的任何位置删除这些空白字符 - 而不仅仅是开始或结束。