1
4

1 に答える 1

3

この文字は U+FFFD, REPLACEMENT CHARACTER であり、Unicode エンコーディングであると考えられるストリーム内の無効なデータを置き換えるために一般的に使用されます。

たとえば、テキスト "Résumé" が IS0 8859-1 としてエンコードされていて、それを UTF-16 に変換したいが、変換ルーチンにテキストが UTF-8 であることを伝えた場合、ライブラリはおそらく UTF-16 テキストを生成します。 R�sum�" (他の代替手段は、エラーをスローして結果を返さないことです)。

これらが表示される別の方法は、Web ページが UTF-8 であると宣言しているが、実際には UTF-8 ではない場合です。ブラウザーは上記の再エンコードを行う可能性が高く、レンダリングされた Web ページに置換文字が表示されますが、HTML エンコード情報を無視または無視するエディターでソースを表示すると、文字が正しく表示されます。

あなたのコメントから、プロセスは次のようになります。

Excel -> csvにエクスポート -> jsでcsvを処理 -> htmlを生成

Windows ソフトウェアは通常、UTF-8 ではなく、プラットフォームの「非 Unicode プログラムのエンコード」を使用して 8 ビット テキストをエンコードします。そのため、CSV ファイルはおそらく Windows CP1252 であり (ほとんどの西側諸国用にセットアップされた Windows のバージョンを使用している場合)、JavaScript プログラムがそのデータを読み取り、UTF であるはずの HTML ソースに直接コピーしている場合は、 8、それはあなたの説明に合った問題を引き起こすでしょう.

CSVが使用しているエンコーディングからUTF-8に変換する必要があります。Javascript にはこれを行う機能が実際にはありません。そのため、ファイルを Excel からエクスポートした後、JS でアクセスする前に変換することをお勧めします。

その他の方法としては、HTML ページが使用しているエンコーディングを csv が使用するものに変更するか、エンコーディングを指定せずにブラウザに推測させることです。

于 2012-10-31T16:18:15.443 に答える