繁体   English   中英

上载CSV时UTF-8编码问题

[英]UTF-8 Encoding Issue when uploading CSV

我在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($ exploded_value [$ i])。 并且当utf8_encode执行其过程时,它就被解码了。

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

任何人都遇到过此问题。 您能否分享如何解决? 请帮忙。 我到处搜寻,没有发现任何运气。

您的逻辑相反:您要重新编码已经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]);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM