web-dev-qa-db-ja.com

UTF-8に変換した後、3つの特殊文字が発生する原因は何ですか?

作業手順の1つは、MS ExcelワークシートをCSVとして保存し、UltraEditを使用してCSVをUTF-8に変換してから、サーバーシステムにインポートすることです。

問題は UTF-8に変換した後、ファイルの先頭に常に3つの意味のない文字が含まれていることです。

ï"¿ENTITY_ID; FIELD2; FIELD3、FIELD4;(など)
value1; value2; value3; value4;(など)。

観察:

  • ご覧のとおり、最初の列の名前が「ENTITY_ID」ではないため、ノイズでサーバーがCSVインポートを拒否する3文字があります。文字は常に同じです。

  • これらの文字は変換後に表示されませんが、UltraEditでファイルを閉じて再度開くと、文字が表示されます。

  • これらの文字はUltraEditでのみ表示されます。 Windowsのメモ帳またはメモ帳++では表示されません。

  • Notepad ++を使用してCSVをUTF-8に変換すると、まったく同じ出力が生成されます。つまり、最初に同じ3つの奇数文字を含むファイルです。唯一の違いは、ファイルを閉じて再度開いた後でも、Notepad ++ではこれらの文字が表示されないことです。

回避策:
UltraEditでファイルを再度開き、ノイズを削除すると、サーバーはCSVインポートを受け入れます。
このステップは、実際の問題を修正することによって排除する必要があります。

質問:これらの3文字を回避するにはどうすればよいですか?

これが バイト順マーク で、UTF-8としてエンコードされています。最初に追加しないようにエディターに指示するか、サーバーシステムで実際のデコーダーを使用してください。