【问题标题】:Removing Special character when importing data from excel [duplicate]从excel导入数据时删除特殊字符[重复]
【发布时间】:2013-02-05 16:04:43
【问题描述】:

我正在将数据从 excel 导入数据表。它工作正常。但在某些领域,导入的数据带有未知字符“�”。但是excel没有这样的性格。这是我的代码。

我尝试了很多方法。这是我的最终代码。

$new_prod_desc = (ucfirst($data[0])." ".ucfirst($data[5])." ".ucfirst($data[1])." ".ucfirst($data[2])); $new_prod_desc = preg_replace("/&#?[a-z0-9]+;/i","",$new_prod_desc);

谢谢。

【问题讨论】:

  • 为了得到正确的修复,您必须找出 Excel 和您的数据库表中使用的编码。

标签: php htmlspecialchars


【解决方案1】:

那不是单字节字符,而是一个UTF-8序列ef bf bd:

来自here:

U+FFFD  �   ef bf bd    REPLACEMENT CHARACTER

也许它正在替换一个更糟糕的角色?

如果你只是想让它消失,你可以搜索并替换字节序列。

【讨论】:

  • 何时替换这些字符?在 utf8_decode 之前还是在 utf8_decode 之后?还有我想换哪一个? 'ef bf bd' 还是 'U+FFFD'?
  • @Devpower:我根本不会使用utf8_decode(),尤其是如果你现在不是而且你得到的只是这些麻烦的字符。
  • 我明白了。请告诉我要更换哪一个? 'ef bf bd' 还是 'U+FFFD'?
  • 我找到了这个角色。那是'Ù'。有什么帮助吗?
【解决方案2】:

首先验证excel文档是UTF-8编码的。

尝试添加功能

utf8_decode

像这样:

$new_prod_desc = utf8_decode($new_prod_desc);

【讨论】:

  • 该函数生成ISO-8859-1。除非数据库使用ISO-8859-1,否则它会破坏数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-20
  • 2020-11-19
  • 2012-01-31
  • 2014-05-15
  • 2023-03-25
  • 1970-01-01
相关资源
最近更新 更多