SWI prolog无法处理瑞典语字母
我有一个名为syntax.pl的文件。这是其中的一段摘录:SWI prolog无法处理瑞典语字母,prolog,letters,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 =
% ---------- %
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. % Ö
我收到以下错误消息:
ERROR: /Users/sahandz/.Trash/syntax/syntax.pl:185:97: Syntax error: Unexpected end of file
我怀疑这是因为在我发布的摘录末尾有瑞典信件。我相信是这样的,因为第185行是第一行出现瑞典字母的地方(请参见错误消息)
我能做些什么
编辑:
删除瑞典语字母后(它们毕竟在注释中),我仍然会遇到相同的错误。我通过使用UTF-8编码重新保存syntax.pl文件解决了这个问题。这可以在许多文本编辑器中完成 我通过使用UTF-8编码重新保存syntax.pl文件解决了这个问题。这可以在许多文本编辑器中完成 两种解决方案(不相互排斥):
encoding/1
指令作为Prolog文件第一行中的第一项。在这种情况下,您仍然需要使用UTF-8编码保存文件,但不需要BOM:
:- endcoding(utf8).
encoding/1
指令作为Prolog文件第一行中的第一项。在这种情况下,您仍然需要使用UTF-8编码保存文件,但不需要BOM:
:- endcoding(utf8).
请注意,
编号(C)
后缺少开口圆括号,末尾缺少闭合圆括号。如果您想处理Unicode字符,请考虑内置的<代码>代码类型/ 2 < /代码>和<代码> CARYTYPE / 2 。哪个字符集的有效字符为150?请注意,编号(C)后没有开头的圆括号,结尾没有结尾的圆括号。如果您想处理Unicode字符,请考虑内置的<代码>代码类型/ 2 < /代码>和<代码> CARYTYPE / 2 。哪个字符集的有效字符数为150?