2016-08-08 23 views
-1

テキストがある場合:ユニコードを uXXXX形式で扱うには?

私は明らかにいくつかのアポストロフィで\u0027に対処するにはどうすればよい

「CONSEILデ・デ・L \ u0027Ordreデ規律が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はallow_nonref単なる文字列ではなく、オブジェクトまたは配列を解読するために必要な、perlのソースにリテラルのUTF8のために必要):

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

'decode_json'行に'サブルーチンエントリのワイド文字 'エラーが表示されます。 – CJ7

+0

'use open OUT => ':utf8';'は不要です。私は正しいですか? – CJ7

関連する問題