【发布时间】:2011-07-14 14:11:07
【问题描述】:
在Date::Holidays::DK 模块中,某些丹麦节日的名称以Latin1 编码编写。例如,1 月 1 日是“Nytårsdag”。为了获得正确的 utf8 编码字符串,我应该对下面的 $x 做什么?
use Date::Holidays::DK;
my $x = is_dk_holiday(2011,1,1);
我在use Date::Holidays::DK之前/之后尝试了use utf8和no utf8的各种组合,但似乎没有任何效果。我还尝试使用 Encode 的decode,但没有成功。更具体地说,
use Date::Holidays::DK;
use Encode;
use Devel::Peek;
my $x = decode("iso-8859-1",
is_dk_holiday(2011,1,1)
);
Dump($x);
print "January 1st is '$x'\n";
给出输出
SV = PV(0x15eabe8) at 0x1492a10
REFCNT = 1
FLAGS = (PADMY,POK,pPOK,UTF8)
PV = 0x1593710 "Nyt\303\245rsdag"\0 [UTF8 "Nyt\x{e5}rsdag"]
CUR = 10
LEN = 16
January 1st is 'Nyt sdag'
(在 t 和 s 之间有一个无效字符)。
【问题讨论】:
标签: perl encoding utf-8 perl-module latin1