我正在使用 perl 代码库来验证客户输入,我的目标是阻止代理字符。
我的想法是首先将客户输入编码为 UTF-16 和
foreach my $messageChar (@MessageChars) {
my $messageCharUTF16 = Encode::encode("UTF-16", $messageChar);
if (($messageCharUTF16 >= 0xD800 && $messageCharUTF16 <= 0xDBFF)|( $messageCharUTF16 >= 0xDC00 && $messageCharUTF16 <= 0xDFFF)) {
// Then we have surrogate pairs
}
}
但是,我没有从 Encode::encode 获得正确的 UTF-16 值。
如何显示代理对?是否有任何直接的方法来验证字符串是否包含 Perl 中的代理字符?