我有一个多字节字符''。如何将其转换为'\ 360 \ 245 \ 242 \ 245'?
use Devel::Peek;
向我提供了这些信息,但它只将其打印到控制台......
答案 0 :(得分:2)
T *l_double; //T is double
if T is of type double
auto a = 5 * (*l_double);
输出:
#!/usr/bin/env perl
use utf8;
use strict;
use warnings;
use Unicode::UTF8 qw( encode_utf8 );
my $x = "";
print encode_utf8($x);
答案 1 :(得分:2)
鉴于
use utf8;
my $s = ""; # Or "\x{258A5}", or chr(0x258A5), or ...
如果你想要"\360\245\242\245"
返回的4字符串
在这种情况下,您要求使用UTF-8编码字符串。
use Encode qw( encode_utf8 );
encode_utf8($s)
如果您想要"\\360\\245\\242\\245"
在这种情况下,你要求的是一个人类可读的"表示字符串的UTF-8编码。
use Encode qw( encode_utf8 );
join "", map sprintf("\\%o"), split //, encode_utf8($s)
备选方案:
use Encode qw( encode_utf8 );
sprintf("%vo", encode_utf8($s)) # 360.245.242.245
use Encode qw( encode_utf8 );
sprintf("%vX", encode_utf8($s)) # F0.A5.A2.A5
use Data::Dumper qw( Dumper );
local $Data::Dumper::Useqq = 1;
local $Data::Dumper::Terse = 1;
local $Data::Dumper::Indent = 0;
Dumper($s) # "\x{258a5}"
use Data::Dumper qw( Dumper );
use Encode qw( encode_utf8 );
local $Data::Dumper::Useqq = 1;
local $Data::Dumper::Terse = 1;
local $Data::Dumper::Indent = 0;
Dumper(encode_utf8($s)) # "\360\245\242\245"