我正在尝试从使用特殊字符的字符串中编写正确的 svg。我正在为 svg 文档使用 UTF-8 编码。我正在处理 javascript 。字符串是这样的:
<glyph unicode="¥" horiz-adv-x="819" />
使用 DOMParser api 编写 xml 时,它会将 ¥ 转换为 ¥,这是不正确的 xml 并且浏览器会抛出 XML Parsing 错误。
这是我要转换为 SVG 文档的完整文本。
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata></metadata>
<defs>
<font id="DearestRegular" horiz-adv-x="2048" >
<font-face units-per-em="2048" ascent="1638" descent="-410" />
<glyph unicode="¥" horiz-adv-x="819" />
</font>
</defs>
</svg>
使用 DOMParser 我得到如下输出:
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata></metadata>
<defs>
<font id="DearestRegular" horiz-adv-x="2048" >
<font-face units-per-em="2048" ascent="1638" descent="-410" />
<glyph unicode="¥" horiz-adv-x="819" />
</font>
</defs>
</svg>
这会在浏览器中引发 XML 解析错误。