golang——json的html标签转义问题

html-css017

golang——json的html标签转义问题,第1张

json的Marshal 用来对slice,map,struct等结构化类型数据转义成[]byte/string,UnMarshal方法是用来对[]byte/string转义成指定结构的interface。但在处理html标签字符中,会存在转义问题。Marshal方法默认把html标签中的'<', '>' , '&'字符转义成unicode,为强制为有效UTF-8的JSON字符串,用Unicode替换符号替换无效字节。

go doc原文

Marshal的源码

这一行encOpts{escapeHTML: true}),这里的true导致标签被转义。

针对上述问题,有两种解决办法,第一种是替换上述三个tag,第二种是SetEscapeHtml(false);

输出:

可以使用虚拟打印机来处理:方法一:使用虚拟打印机pdf factory即可,而且其他格式文件只要是能够打印,选择这个虚拟打印机,都可以做成PDF文件,很简单实用;最简单而且实用的使用虚拟打印机pdf factory即可,可以把任意只要能够打印的格式文件都可以做成PDF文件,并且可以把多个文件通过打印之后合成一个PDF文件。pdfFactory Pro(虚拟打印机)是一个无须 Acrobat 创建 Adobe PDF 文件的打印机驱动程序。pdfFactory Pro(虚拟打印机)提供的创建 PDF 文件的方法比其他方法更方便和高效。 功能包括: 多个文档整合到一个 PDF 文件中内嵌字体通过 E-mail 发送预览自动压缩优化。PDF Factory是pdf虚拟打印机软件,下载安装好PDF Factory后,在打印机控制面板中就可以找到一台由pdf Factory虚拟出来的打印机,可以把任何可以打印的文件转换成pdf文件。用任何可以支持打印输出的软件,把需要处理的文件逐个打印到这个虚拟打印机,全部打印完成后可把结果保存成一个pdf文件。甚至可以把不同软件格式的文件,如word、excel、photoshop等任何可以支持打印的文件,打印到同一个pdf文件。在打印之前,在PDF Factory Pro里面设置一下PDF的打开、打印等权限即可实现加密等目的;在打印之前,在设置里面,就把加载所有的系统字体选中。在打印界面出来后,可以在左侧设置水印。然后再保存PDF文件。打印完毕后,下载一个Adobe Reader,然后安装,可以很流畅的阅读PDF文件。方法二:用其他虚拟打印机转成PDF文件。方法三:使用专门的转换软件,把文件转成PDF文件。