2012-04-09 10 views
1

JavaScriptでJSON.parseを使用してJSONを解析しています。 this exampleのテキストをコピーすると問題が発生します。ダブルクリックすると、クリップボードにテキストがコピーされます。私が正規表現を使ってすべての空白を取り除くと、それは動作します。しかし、私は不快な性格を見つけることができません。私は試しました:隠されている文字がJSON.parseに失敗する原因は何ですか?

replace(/\t/g,''); 
replace(/\n/g,''); 
replace(/\r/g,''); 
replace(/\0/g,''); 
replace(/\x0B/g,''); 

...まだ怒っているキャラクターが残っています。それを追跡するために私は何ができますか? Windowsのメモ帳にテキストを貼り付けると、その文字は削除され、JSON.parseが機能します。

+0

私はそれを取得しない、あなたはあなたのクリップボードから解析しようとしていますか?あなたがそれをコピーすると、それをjsから消費するためにどこに貼り付けていますか? –

答えて

1

私はコピー&ペーストをすると、インデントがNO-BREAKのSPACE文字で構成されて、シーケンスに0xC2としてUTF-8でエンコードされたコードは0x80、0xA0を

私はすべてのNO-を交換BREAK SPACE文字を通常のスペース(0x20)で置き換えて、JSONとして解析できます(PerlのJSON::decode_jsonを使用)。

+0

私はこれを試していますが、動作していません: 'replace(/ \ 0xc2 | 0xa0 \ g /、 '');' – Jack

+0

@Jack:JavaScriptがよく分かりません。仕事はありません。 –

+0

'.replace(/ \ 0x20 | \ 0x0A \ g /、 '');'私のために働いた。 '0xc2'は '0x20'だったはずです。私は16進エディタをダウンロードして、置き換える必要のある文字を見つけました。 – Jack

関連する問題