我追逐的Perl代码,似乎根本上是这个版本中的错误:如何检测解码的字符串
"Cannot decode string with wide characters" appears on a weird place
基本上,在一定条件下,Encode::decode('utf8', $string)
越做越同一调用两次字符串和欢闹随之而来。现在,最好的解决方案是找出导致双解码的条件,并停止发生。不幸的是,这是功能丰富的产品的成熟产品代码;弄清楚这些条件并以不会引入回归错误的方式修复它们看起来具有挑战性。
是否有一些快速可靠的方法来检测字符串是否已经从utf8解码?在这些调用之前插入“if”语句会感觉有点不适应,但应该是一个非常安全的修复方法。
@BlairHippo,请注意,这与'utf8 :: is_utf8'完全相同,只是后者是内置的,这意味着您不需要加载任何模块来使用它。请记住,既不准确返回字符串是否已被解码。 – ikegami