SWI-prolog 无法处理瑞典字母
SWI-prolog not able to handle swedish 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. % Ö
I 运行 SWI-序言版本 7.2.3。我运行以下命令:
?- [syntax].
我收到以下错误消息:
ERROR: /Users/sahandz/.Trash/syntax/syntax.pl:185:97: Syntax error: Unexpected end of file
我怀疑这是因为我发布的摘录末尾的瑞典字母。我相信是这样,因为第 185 行是出现瑞典字母的第一行(请参阅错误消息)。
我该怎么办?
编辑:
删除瑞典字母后(它们毕竟在评论中)我仍然得到同样的错误。
我通过使用 UTF-8 编码重新保存 syntax.pl 文件解决了这个问题。这可以在许多文本编辑器中完成。
两种解决方案(互不排斥):
使用 UTF-8 编码和 BOM 保存文件。
使用 encoding/1
指令作为 Prolog 文件第一行中的第一项。在这种情况下,您仍然需要使用 UTF-8 编码保存文件,但不需要 BOM:
:- endcoding(utf8).
我有一个名为 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. % Ö
I 运行 SWI-序言版本 7.2.3。我运行以下命令:
?- [syntax].
我收到以下错误消息:
ERROR: /Users/sahandz/.Trash/syntax/syntax.pl:185:97: Syntax error: Unexpected end of file
我怀疑这是因为我发布的摘录末尾的瑞典字母。我相信是这样,因为第 185 行是出现瑞典字母的第一行(请参阅错误消息)。
我该怎么办?
编辑:
删除瑞典字母后(它们毕竟在评论中)我仍然得到同样的错误。
我通过使用 UTF-8 编码重新保存 syntax.pl 文件解决了这个问题。这可以在许多文本编辑器中完成。
两种解决方案(互不排斥):
使用 UTF-8 编码和 BOM 保存文件。
使用
encoding/1
指令作为 Prolog 文件第一行中的第一项。在这种情况下,您仍然需要使用 UTF-8 编码保存文件,但不需要 BOM::- endcoding(utf8).