SWI-prolog无法处理瑞典语字母

时间:2015-11-08 12:43:02

标签: prolog letters

我有一个名为syntax.pl的文件。这是摘录:

% ---------- %


allowed_char( C ) :-
  number( C ),
  ( C >= 97, C =< 122 ) ;
  ( C >= 65, C =< 90 ) ;
  ( C >= 48, C =< 57 ) ;
  C = 39 ;
  C = 40 ;
  C = 41 ;
  C = 44 ;
  C = 196 ;
  C = 197 ;
  C = 214 ;
  C = 228 ;
  C = 229 ;
  C = 246 ;
  % Wide characters
  C = 195 ;
  C = 165 ; % å
  C = 164 ; % ä
  C = 182 ; % ö
  C = 133 ; % Å
  C = 132 ; % Ä
  C = 150.  % Ö

我运行SWI-prolog版本7.2.3。我运行以下命令:

?- [syntax].

我收到以下错误消息:

ERROR: /Users/sahandz/.Trash/syntax/syntax.pl:185:97: Syntax error: Unexpected end of file

我的怀疑是,这是因为我发布的摘录末尾的瑞典信件。我相信是因为第185行是瑞典字母出现的第一行(参见错误信息)。

我该怎么办?

编辑:

删除瑞典语字母(毕竟他们在评论中)我仍然得到同样的错误。

2 个答案:

答案 0 :(得分:0)

我通过使用UTF-8编码重新保存syntax.pl文件解决了这个问题。这可以在许多文本编辑器中完成。

答案 1 :(得分:0)

两种解决方案(不相互排斥):

  1. 使用UTF-8编码和BOM保存文件。

  2. 使用encoding/1指令作为Prolog文件第一行的第一项。在这种情况下,您仍然需要使用UTF-8编码保存文件,但不需要BOM:

    :- endcoding(utf8).