FreeMarker 输出在以问号开头时被编码为 un​​icode

FreeMarker output being encoded to unicode when proceeded by question mark

我正在用以下 属性

解析一个 JSON 文件
{
   "xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
}

我输出后 属性 它看起来像这样

obj.xml?json_string

{
  "xml": "\u003C?xml version=\"1.0\" encoding=\"UTF-8\"?>"
}

如何从 escaping/encoding 后跟问号的“<”字符停止 FreeMarker?

我想到了两个解决方案...

第一个比较手动:

<#assign obj ={"xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"}>

${(obj.xml?json_string)?replace("\u003C","<")}

第二种更直接:

<#assign obj ={"xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"}>

${obj.xml?j_string}

两者都给出了所需的输出<?xml version=\"1.0\" encoding=\"UTF-8\"?>