2016-05-21 7 views
0

特殊文字のように見えますが、xlsx-writestreamを使ってExcelファイルを正しく書き込めません。私はそのpawe2文字列を見つけました。それは大丈夫に見えますが、Linux端末で、それは次のようになります。JavaScriptの特殊文字を削除する

enter image description here

お知らせe2の間で奇妙な文字。このような文字を削除するにはどうしたらいいですか?私はまた"pawe�2".charCodeAt(4) = 20に気付く。だから、JavaScriptはうまくそれを読むことができるようです。この場合、出力されたExcelファイルが破損するだけです。それはどんなキャラクターですか?何か絵文字や何か?

は、あなたが文字列から(127までの範囲0)すべての非ASCII文字を削除することができ
+0

不明な文字を使用してドキュメント言語を言語に設定すると、問題が自動的に解決されるかどうかを確認してください。 –

+0

これはxlsx-writestreamの[オープンバグ](https://github.com/STRML/node-xlsx-writestream/issues/12)です。 –

+0

XMLはドキュメント内のすべてのUnicodeコードポイントを許可しないため、OpenXMLにはエスケープメカニズムがあります。あなたの文字列はxlsx XMLでpawe_x0014_2と書かれているはずです。これをOpenXMLに変換するJavaScriptデータに入れると、そのままコピーされ、Excelはそれを␔(U + 0014)とみなし、それに満足しています。 (これはxlsx-writestreamのバグです。JavaScriptデータにpawe_x0014_2がある場合、Excelにこれらの文字が正確に表示されるようにするためです) –

答えて

2

:これは必要以上の文字列からより多くを削除し

str.replace(/[^\x00-\x7F]/g, ""); 

かどうかは、私が思うあなたの要件に依存します。

+0

文字が削除されないようです。最初に文字列をこの形式に変換する必要がありますか?私の文字列は現在 '\ x00'のように見えませんか? –

+0

@JiewMeng - '.replace()'の結果を何かに代入する必要があります。文字列は不変なので、直接変更されることはありません。 '.replace()'は新しい文字列を返します。 – jfriend00

関連する問題