You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 16:38:08