我正在追逐 Perl 代码中的一个错误,它似乎基本上是这个版本:
基本上,在某些条件下,Encode::decode('utf8', $string)
在同一个字符串上被调用两次,然后就会产生欢闹。现在,最好的解决方案是找出导致双重解码的条件并阻止这种情况发生。不幸的是,这是功能丰富的产品的成熟生产代码;找出这些条件并以不引入回归错误的方式修复它们看起来具有挑战性。
是否有一些快速可靠的方法来检测字符串是否已经从 utf8 解码?在这些调用之前插入“if”语句感觉有点笨拙,但应该是一个非常安全的解决方法。