加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl:latin1模块中的字符串文字 – 我想要utf8

发布时间:2020-12-16 06:22:21 所属栏目:大数据 来源:网络整理
导读:在Date :: Holidays :: DK模块中,某些丹麦假期的名称是用Latin1编码编写的.例如,1月1日是’Nyt?rsdag’.为了获得正确的utf8编码字符串,我应该如何处理$x以下? use Date::Holidays::DK;my $x = is_dk_holiday(2011,1,1); 我在使用Date :: Holidays :: DK之前
在Date :: Holidays :: DK模块中,某些丹麦假期的名称是用Latin1编码编写的.例如,1月1日是’Nyt?rsdag’.为了获得正确的utf8编码字符串,我应该如何处理$x以下?

use Date::Holidays::DK;
my $x = is_dk_holiday(2011,1,1);

我在使用Date :: Holidays :: DK之前/之后尝试了使用utf8和no utf8的各种组合,但它似乎没有任何效果.我也试图使用Encode的解码,没有运气.进一步来说,

use Date::Holidays::DK;
use Encode;
use Devel::Peek;
my $x = decode("iso-8859-1",is_dk_holiday(2011,1)
          );
Dump($x);
print "January 1st is '$x'n";

给出输出

SV = PV(0x15eabe8) at 0x1492a10
  REFCNT = 1
  FLAGS = (PADMY,POK,pPOK,UTF8)
  PV = 0x1593710 "Nyt303245rsdag" [UTF8 "Nytx{e5}rsdag"]
  CUR = 10
  LEN = 16
January 1st is 'Nyt sdag'

(t和s之间的字符无效).

解决方法

use utf8 and no utf8 before/after use Date::Holidays::DK,but it does not seem to have any effect.

正确. utf8 pragma仅表示程序的源代码是用UTF-8编写的.

I also tried to use Encode’s decode,with no luck.

你没有正确地理解这一点,你实际上是做对了.您现在拥有一串Perl字符并可以对其进行操作.

with an invalid character between t and s

你也解释这个错误,它实际上是?字符.

您想输出UTF-8,因此您缺少编码步骤.

my $octets = encode 'UTF-8',$x;
print $octets;

有关编码主题的介绍,请阅读http://p3rl.org/UNI.您总是必须明确地或隐含地解码和编码.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读