首页 > 解决方案 > 为什么不“使用 utf-8;” 在 Perl 模块中使用时工作?

问题描述

我们在库中有一个错误,这是由其中一个输入是 Unicode 引起的。

use utf8;通过使用该库添加到脚本来修复它。

但是,添加use utf8;到库本身(因此使用该库的所有脚本都将被修复)没有效果。

为什么?这可以解决吗?

标签: perlutf-8

解决方案


文档中

use utf8 pragma 告诉 Perl 解析器在当前词法范围内的程序文本中允许 UTF-8。

换言之,此编译指示仅适用于当前包。您需要将它放在源代码可能包含 Unicode 字符的每个包中。如果您的输入来自其他地方,那么您需要确保它被正确解码:pragma 对此没有影响。

PS:我明白你的意思是use utf8,不是use utf-8(后者不是有效的编译指示)。


推荐阅读