2016-08-08 1 views
-1

는 :유니 코드를 uXXXX 형식으로 처리하는 방법은 무엇입니까? 텍스트가있는 경우

어떻게 분명히 일부 아포스트로피 인 \u0027, 처리 할 "헌법위원회 드 규율을 드 L \ u0027Ordre DES는 professionnels 동의 퀘벡 comptables" 종류. 이것을 어떻게 읽을 수있는 문자로 변환 할 수 있습니까?

데이터는 JSON에서 유래합니다.

+0

http://search.cpan.org/~you/Encode-Escape-0.14/lib/Encode/Escape/Unicode.pm – dsm

+0

JSON :: XS 사용 ... – ysth

+0

@ysth 작동하지 않았습니다. 나는'decode_json'을 사용하여 전체 JSON 문자열을 해독했으며 개체를 덤프 할 때 리터럴 "\ u0027"을 여전히 출력했습니다. – CJ7

답변

1
use utf8; 
use JSON::XS; 
use open OUT => ':utf8'; 
my $decoder = JSON::XS->new->allow_nonref(1); 
my $json_string = '"Conseil de discipline de l\\u0027Ordre des comptables professionnels agréés du Québec"'; 
printf "in: %s\nout: %s\n", $json_string, $decoder->decode($json_string); 

이 맞습니다. 일부 이중 인코딩 된 문자열을해야합니까 실제로 경우

(사용이 UTF8 펄 소스의 문자 UTF8에 필요한, allow_nonref은 단지 문자열이 아닌 객체 또는 배열을 해독하는 데 필요한), 당신은 할 수 :

$string =~ s/\\u([[:xdigit:]]{4})/chr hex $1/g; 
+0

'decode_json' 줄에'서브 루틴 입력에서 넓은 문자 '오류가 나타납니다. – CJ7

+0

'use open OUT => ': utf8';'은 필요하지 않습니다. 나 맞아? – CJ7

관련 문제