首页 > 解决方案 > 为什么运行这个 perl 脚本时分号无法识别?

问题描述

来自文本编辑器的代码

在此处输入图像描述

终端错误。

在此处输入图像描述

我正在尝试设置 Moss(用于 CS 的斯坦福抄袭检查器),当我运行脚本时,出现无法识别脚本中分号的错误?

这是在 Mac OSX 上使用 textwrangler 作为文本编辑器运行的。

无法识别的字符 \xC2; 在 t_l = "c" 之后由 <-- HERE 标记;<-- HERE 在 ./moss.pl 第 173 行的第 14 列附近。

标签: perltextwrangler

解决方案


它不是在抱怨分号(即 3B),而是在抱怨后面有一个值为 C2 的字节。这不是合法的 ASCII(如果你不使用它是预期的use utf8;)虽然它可能是一个合法的 UTF-8 序列的开始(如果你使用它是预期的use utf8;

您在终端或编辑器中看不到它,因为它对他们来说也是垃圾,或者因为他们期望 UTF-8 并且它(开始)是某种空白或不可打印的 UTF-8 字符。

它可能是 U+00A0 NO-BREAK SPACE,UTF-8 编码为 C2 A0。这将在需要 UTF-8 的终端和编辑器中显示为正常空间。

重新键入该行以将 NBSP 替换为普通空格,或添加use utf8;以使 Perl 将源代码视为 UTF-8。


推荐阅读