我遇到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搜索,没有找到任何运气。
答案 0 :(得分:1)
你的逻辑是颠倒过来的:你正在重新编码已经是utf-8编码的东西,以及你不按原样传递的东西。
要解决此问题,只需切换if
和else
正文:
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]);
}