在JSON :: XS for Perl中使用“\ u four-hex-digits”进行编码

时间:2014-01-03 14:48:19

标签: json perl utf-8 ascii

我的哈希包含UTF-8字符的字符串,例如:

$hash = { text => 'Dragón' };

当我使用JSON :: XS将其编码为JSON时,我得到类似这样的内容:

{"text":"Dragón"}

虽然看起来很丑,但是很有效,但我想得到这样的东西:

{"text":"Drag\u00f3n"}

这可能吗?

2 个答案:

答案 0 :(得分:3)

->ascii会将输出限制为US-ASCII字符。

my $json = JSON::XS->new->ascii;

my $text = $json->encode($hash);

答案 1 :(得分:3)

use JSON::XS ();
use JSON; # uses JSON::XS by default (if available)
$json_text = to_json( { text => 'Dragón' }, { 'ascii' => 1 } );