未知的字符 将excel导入到MySQL后,如何避免它?

可能重复:
utf-8编码PHP + MySQL的问题

我从excel文件导入了大约1000条logging到MySQL中。 但现在我看到了一些文本之间的 。 看来他们是双引号。

  1. 导入数据时如何避免这种情况?
  2. 在网页中打印数据时,我可以使用str_replace()函数来处理这个问题吗?

使用preg_replace做一个正则expression式replace所有无法识别的字符。

例:

 $data = preg_replace("/[^a-zA-Z0-9]/", "", $data); 

这个例子将replace所有非字母数字字符(任何不是az,AZ,0-9)。

http://php.net/manual/en/function.preg-replace.php

如果你的数据库足够简单(没有序列化的值和大小不是千兆字节),你可以完全导出它(例如使用PhpMyAdmin),在文本编辑器中打开,执行searchreplace并将其导回。

str_replace('“','”',$ original_string);

有几个字符单词这样做,所以你可能还想要:str_replace(“'”,“'”,$ original_string);

如果您看到其他字符导致相同的问题,您可以打开文档的文字,并复制/粘贴到您的编辑器中的冒犯angular色,并做类似的replace。

由于您很可能正在寻找用同等版本replaceangular色,所以您可能不希望像在另一个答案中build议的那样执行正则expression式。 对于使用types,str_replace比preg_replace快。