gpt4 book ai didi

perl - 我如何猜测字符串在 Perl 中是否包含文本或二进制数据?

转载 作者:行者123 更新时间:2023-12-02 09:00:00 24 4
gpt4 key购买 nike

找出标量值是 ASCII/UTF8(文本)还是 Perl 中的二进制数据的最佳方法是什么?这段代码对吗?:

if (is_utf8($scalar, 1) or ($scalar =~ m/\A [[:ascii:]]* \Z/xms)) {
# $scalar is a text
}
else {
# $scalar is a binary
}

有没有更好的办法?

最佳答案

is_utf8 测试 Perl utf8 标志是否打开。标量可能包含格式正确的 utf-8 而没有打开标志。我认为即使使用格式错误的 utf-8 也可以故意打开标志,但我不确定。

要检查标量是否包含 UTF-8 数据,您需要检查标志,如果不是,也可以尝试类似的方法

eval {
my $utf8 = decode_utf8 ($scalar);
}

然后检查 $@ 中的错误。

要检查非 UTF-8 标量是否包含非 ASCII 数据,您的想法 $scalar =~ m/\A [[:ascii:]]*\Z/xms 看起来不错.

关于perl - 我如何猜测字符串在 Perl 中是否包含文本或二进制数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2047996/

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