SICStus 4.8.0中如何将UTF-8设为open/3默认编码?
解决SICStus Prolog默认编码改为UTF-8的方法
SICStus自4.8.0版本起,已支持在引号上下文(包括quoted token(6.4.2)、double quoted list(6.4)和character code constant(6.4.4))中使用ÿ以上的Unicode字符,比如直接输入独角兽符号🦄:
| ?- U='\x1f984\'. % 旧写法 U = '🦄' ? ; no | ?- U = '🦄'. % 直接输入Unicode字符 U = '🦄' ? ; no
但使用open/3打开文件时,未指定编码且无法检测BOM的情况下,默认编码为ISO-8859-1。若想全局默认使用UTF-8,可通过以下几种方式实现:
设置Prolog标志:使用
set_prolog_flag/2修改默认文件编码,在交互环境或初始化脚本中执行:set_prolog_flag(file_encoding, utf8).执行后,后续调用
open/3时,若未指定编码且无BOM,将默认使用UTF-8。启动时指定编码:启动SICStus时添加命令行参数
--encoding=utf8,全局默认编码直接设为UTF-8:sicstus --encoding=utf8配置初始化文件:将
set_prolog_flag(file_encoding, utf8).写入SICStus的初始化文件(Linux/macOS下为~/.sicstusrc,Windows下为sicstus.ini),每次启动SICStus时自动加载该配置,永久生效。
注:若文件带有UTF-8 BOM,SICStus会自动检测并使用UTF-8编码,不受上述默认设置影响。
内容的提问来源于stack exchange,提问作者false
相关产品推荐
相关产品推荐

