[Feature] 如何应付clash core报『 level=error msg="yaml: invalid trailing UTF-8 octet"』?

Author: jacobinCreated Jul 14, 2025Updated Feb 12, 2026

VERIFY

  • 我已经仔细阅读项目文档,确认现有功能无法解决我的需求
  • 我已经检索过现有issue,确认与现有issue的内容并不重复
  • 我已经尝试自行解决,确认自己没有能力解决

功能描述

如抬头title,订阅而来的节点,其中某些节点的名称,在clashcore中不能通过utf8解码成功。错误信息如title。

检查发现是如下节点:

  - {name: "%�\x11�|'��\x12\x12�LML\x0b�L\rˍ\r���KMLL%� 3", server: xxx.xxx.xxx.xxx, port: 8083, type: ssr, cipher: aes-256-cfb, password: iFqnzSscN, protocol: origin, obfs: tls1.2_ticket_auth, protocol-param: "", obfs-param: "", udp: true}
  - {name: "%�\x11�|'��\x12\x12�LML\x0b�L\rˍ\r���KMLL%� 4", server: xxx.xxx.xxx.xxx, port: 8083, type: ssr, cipher: aes-256-cfb, password: iFqnzSscN, protocol: origin, obfs: tls1.2_ticket_auth, protocol-param: "", obfs-param: "", udp: true}

所以,我的功能期望是,怎么解决修整这个yaml文件,让clashcore颔首领命通过? 我想过用

rename_node=!!script:function rename(node){...}

以进行节点名称的重新命名,问题的关键是,我怎么sense到此类不可进行utf8解码其名的节点?

可能的解决方案

方案1:让subconverter之QuickJsEngine提供一个函数API:function isValidUtf8(buffer); 方案2:让用户我自己在rename_node中重新命名所有的节点,一锅全端,既莫能外;问题是依循怎么样的命名规则? 方案3:... ...