2012-04-09 2 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가 작동합니다. I 모든 NO-를 교체 할 때

+0

나는 그것을 얻지 못한다. 당신의 클립 보드에서 파싱하려고 시도하고 있는가? 복사 할 때 js에서 그것을 소비하기 위해 붙여 넣기는 어디에 있습니까? –

답변

1

I는 때를 복사하여 붙여 넣기가 압입은 시퀀스 0xc2으로 UTF-8 인코딩 NO 나누기 SPACE 문자 코드 0x80으로, 0xA0에

이루어져 BREAK SPACE 문자를 일반 공백 (0x20)으로 구분하면 JSON으로 구문 분석 할 수 있습니다 (Perl의 JSON::decode_json 사용).

+0

나는 이것을 시도하고 있지만 작동하지 않습니다 : @ replace (/ \ 0xc2 | 0xa0 \ g /, '');' – Jack

+0

@Jack : 왜 자바가 일하지 마라. –

+0

'.replace (/ \ 0x20 | \ 0x0A \ g /, '');는 나를 위해 일했다. '0xc2'는 '0x20'이어야합니다. 저는 16 진수 편집기를 다운로드하여 교체해야하는 문자를 찾습니다. – Jack