在数据库中,有一些特殊字符(很可能是从Word处理器复制的)未正确转换以便在HTML中查看。
为了进一步诊断,我刚刚将数据写入文本文件。
file_put_contents('/tmp/text.txt', $row['text']."\n\n" . htmlentities($row["text"]) . "\n\n", FILE_APPEND);
比较时,我看到了:
# grep "and knows what" text.txt
and knows what “good” looks like.
and knows what �good� looks like.
知道转换被抛弃的原因吗?
这可能已在某处覆盖,但搜索特殊字符并不容易。
解决了编码utf-8的htmlentities。我曾尝试过utf8,但它需要连字符。
htmlentities($str, $flags, 'utf-8');