私はCSVにエクセルファイルをエクスポートしてからMySQLデータベースにアップロードしますが、™(商標)を持つすべてのエントリは小さなa(ª)に変わります。MySQLは™をªに変更していますか?
データベースは、各行と同様にutf8_unicode_ciに設定されています。なぜこれがまだ起こっているのか?
私はCSVにエクセルファイルをエクスポートしてからMySQLデータベースにアップロードしますが、™(商標)を持つすべてのエントリは小さなa(ª)に変わります。MySQLは™をªに変更していますか?
データベースは、各行と同様にutf8_unicode_ciに設定されています。なぜこれがまだ起こっているのか?
変換が簡単です。 Windowsを使用している場合は、Notepad ++などのテキストエディタを無料でダウンロードできます。メモ帳++では、テキストファイルをUTF-8にエンコードまたは変換できます(メニューバーの[エンコーディング]に移動します)。
TextMateのようなMacエディタでも同じことが可能です。ファイル>エンコーディングで再オープンする。
Excelは実際にExcel をExcelからWindows形式で自動的にエンコードします。ただし、別のエンコーディングを使用するファイルを開くために使用される場合は、そのエンコーディングを保持する必要があります。 UTF-8でエンコードされたファイルをWindows-1252に変換しません。
Yup - ファイルが直接アップロードされていないなどの場合の便利な回避策 –
私はMicrosoft製品にうんざり!情報は、データベースのバックエンドでちょっと混乱していますが、うまく印刷されています。 ありがとう! – Carson
問題は、Excel CSVファイルが(おそらく)Windows-1252形式であることです。
そのように、あなたが最も可能性が高い例えば、このようなmb_convert_variables
としての機能を使用してUTF-8形式に各項目を変換するためにPHPを使用する必要があります:
$utfVersion = mb_convert_variables('UTF-8', 'Windows-1252', $windowsVersion);
なお、かもしれませんは、コマンドラインツールなどを使ってMySQLテーブルを表示してもまだ誤って表示されますが、PHPに戻すと正常に表示されます。
mojibakeに1つの置換えがある場合、UTF-8が関与している可能性は低いです。
元のデータが「™」は0xAAをにエンコードし、0xAAをがª」にデコードするところwindows-1252(windows-1254と-1258とISO-8859-1、-9、および-15も可能である)と誤解しまったMacintosh encodingsの一つであったと思わ'
私は同じ種類の問題を抱えていて、PHPを使用してデータを読み込む方が良いと思われます。 – Sonny
Excelはエクスポートにどのエンコードを使用していますか?私の推測は、UTF-8ではありません。 –