0

UTF-8 エンコーディングで問題が発生しています。CSV ファイルがあり、これがその内容です。

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

1つずつ抽出しましたが、ループにこの状態があります

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 です

誰もがこの問題に遭遇しました。どのように修正したかを共有できますか?助けてください。私はグーグルで検索しましたが、運が見つかりませんでした。

4

1 に答える 1

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]);
}
于 2012-06-22T06:21:07.140 に答える