gpt4 book ai didi

encoding - 如何获得Perl 6可以理解的编码列表?

转载 作者:行者123 更新时间:2023-12-04 08:56:12 25 4
gpt4 key购买 nike

我在/src/core/Rakudo/Internals.pm中看到一个哈希,其中包含简短的编码列表,但除此之外没有办法。 NORMALIZE_ENCODING方法是唯一使用它的方法。使用此列表中未包含的内容,则会出现异常。

因此,在尝试之前,我怎么能知道什么是有效的,特别是由于缺少一些重要的编码?

my $encodings := nqp::hash(
# fast mapping for identicals
'utf8', 'utf8',
'utf16', 'utf16',
'utf32', 'utf32',
'ascii', 'ascii',
'iso-8859-1', 'iso-8859-1',
'windows-1252', 'windows-1252',
# with dash
'utf-8', 'utf8',
'utf-16', 'utf16',
'utf-32', 'utf32',
# according to http://de.wikipedia.org/wiki/ISO-8859-1
'iso_8859-1:1987', 'iso-8859-1',
'iso_8859-1', 'iso-8859-1',
'iso-ir-100', 'iso-8859-1',
'latin1', 'iso-8859-1',
'latin-1', 'iso-8859-1',
'csisolatin1', 'iso-8859-1',
'l1', 'iso-8859-1',
'ibm819', 'iso-8859-1',
'cp819', 'iso-8859-1',
);
method NORMALIZE_ENCODING(Str:D \encoding) {
my str $key = nqp::unbox_s(encoding);
if nqp::existskey($encodings,$key) {
nqp::atkey($encodings,$key)
}
else {
my str $lc = nqp::lc($key);
nqp::existskey($encodings,$lc)
?? nqp::atkey($encodings,$lc)
!! nqp::lc($key)
}
}

最佳答案

关于您最初的问题:似乎没有这样的事情。但是,编码代码已更改,现在您可以register new encodings and check existing ones; those list also available encodings了。
还有一个函数find,如果存在则返回一个编码对象:

say Encoding::Registry.find('oh-no'); 
# OUTPUT: «(exit code 1) Unknown string encoding 'oh-no'␤»
say Encoding::Registry.find('latin1');
#OUTPUT: «Encoding::Builtin.new(name => "iso-8859-1")␤»
现在记录了相应的类。

关于encoding - 如何获得Perl 6可以理解的编码列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41433287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com