我想要一个可靠的函数来编码Highcharts中的图表 Headers ,字幕,系列名称等 . 普通的HTML编码功能不起作用 .

如果我有一个字符串客户端,我已经决定现在简单地用 &lt; 替换 <

function highchartsEncode(s) {
    return s.replace(/</g, "&lt;");
}

在ASP.Net MVC视图中构建图表时,我使用:

string HighchartsEncode(string s) 
{
    return HttpUtility.JavaScriptStringEncode(s).Replace(@"\u003c", "&lt;");
}

但是,我无法弄清楚如何为Highcharts编码一个字符串,以便它显示 &lt; 并且这让我感到困扰(想象一下你想要绘制使用html实体的频率) .

背景

Highcharts Labels and String Formatting帮助告诉我们:

Highcharts中的文本和标签以HTML格式给出,但是在SVG中解析和呈现HTML时,只支持一个子集 . 支持以下选项卡:<b>,<strong>,<i>,<em>,
,<span> . 可以使用样式属性设置样式,但只处理与SVG共享的与文本相关的CSS . 在Highcharts中处理文本的大多数地方,后面跟着一个名为useHTML的选项 . 如果是这样,则文本在图表顶部以HTML格式排列 . 这样可以提供完整的HTML支持,如果您想在标签中添加图像,工具提示中的表格等等,这可能是一个好主意 . 缺点是它总是会在所有其他SVG内容之上进行布局,并且它是在导出的图表中没有以相同的方式呈现 . 使用HTML还可以解决一些带有双向文本的旧浏览器错误 . 阅读国际化下的更多内容 .

因此,如果我不使用useHTML,我应该如何编码任意字符串,以便它们在Highcharts中逐字显示? Highcharts似乎处理某些实体,例如 &lt; ,但不处理其他实体,例如 &amp; ,因此我不能简单地使用常规HTML编码函数对文本进行编码 .

以下是一些测试,看看在几种不同情况下会发生什么:http://jsfiddle.net/franzo/2nRPS/

对上述任何建议的改进?