上载CSV时出现UTF-8编码问题

时间:2012-06-22 06:01:25

标签: php utf-8

我遇到UTF-8编码问题。我有一个CSV文件,这是它的内容:

Quién tú - Tes,  más , S03
Who you, More, SO2

我已逐一提取它,我在循环中有这个条件

if(mb_detect_encoding($exploded_value[$i], 'UTF-8', true))
{
   echo $cleaned_data = utf8_encode($exploded_value[$i]);
}
else
{
  echo $cleaned_data=$exploded_value[$i];
}

我清理过的数据是这样的:

Quién tú - Tes
más
S03

Who you
More
SO2

字符,ç,ú被解码,当检索时它会输出错误的输出。

具有西班牙语字符的文本被检测为UTF-8编码字符。因此,它属于utf8_encode($ explosion_value [$ i])。当utf8_encode执行其过程时,它会被解码。

我的元内容类型的声明是charset = UTF8

任何人都遇到过这个问题。你能分享一下你是如何解决的吗?请帮忙。我用Google搜索,没有找到任何运气。

1 个答案:

答案 0 :(得分:1)

你的逻辑是颠倒过来的:你正在重新编码已经是utf-8编码的东西,以及你不按原样传递的东西。

要解决此问题,只需切换ifelse正文:

if(mb_detect_encoding($exploded_value[$i], 'UTF-8', true))
{
   // already UTF-8
   echo $cleaned_data=$exploded_value[$i];
}
else
{
   // not yet UTF-8
   echo $cleaned_data = utf8_encode($exploded_value[$i]);
}