Why I get "Fatal error: in ...smarty_internal_templatecompilerbase.php on line 8" error message?

Why I get "Fatal error: in ...smarty_internal_templatecompilerbase.php on line 8" error message?

我正在将旧项目从 PHP 5.X 迁移到 7.0.4,并将 Smarty 从 2.6.27 迁移到 3.1.29。在解决了几个小问题后,我得到了一个令人惊讶的错误信息

Fatal error: in C:...\smarty-3.1.29\libs\sysplugins\smarty_internal_templatecompilerbase.php on line 8

奇怪的是这个文件的第8行是多行phpdoc注释的中间。根本没有代码执行。

为什么会显示此错误消息,它是什么意思?

苦苦排查,原来报错信息的行号没问题,文件名不行。错误不在上述 php 代码的第 8 行。它位于我模板的第 8 行。

模板文件是一个带有一些国际字符的 ISO-8859-2 编码文件:

BLAH
{ * részletezés  * }
BLA

模板文件第8行的单词"részletezés"包含了罪魁祸首。

较早的 smarty 版本 (2.X) 运行 符合国际 smarty 评论。问题是错误消息具有误导性。

将国际字符更改为对应的英文字符后,错误消失了。