无法在 SVG 中显示度数字符 (°)

Unable to display a degree char (°) in a SVG

我正在尝试在 D3.js 操作的 SVG 中显示度数字符 (°)。到目前为止,我已经尝试了不同的字符集,但我总是得到一个 � 并且以下字符代码只是将它们自己显示为常规文本:°°.

我正在使用 <meta charset="UTF-8">

您将如何显示该符号?也许有一个 SVG 属性 我可以设置?

我不明白为什么这应该是个问题。你说你在 HTML 文件中添加了 <meta charset="UTF-8">,但你真的使用 UTF-8 编码保存它吗?一些纯文本编辑器默认使用其他字符集,如 iso-8859-1,因此您可能在某处有不正确的字符代码。如果您的 Javascript 存储在单独的文件中,请确保该文件也已正确编码。

另请记住,&deg; 等字符实体在 SVG 文件中不起作用。

var svg = d3.select("body")
  .append("svg")
  .attr("width", 400)
  .attr("height", 100);

svg.append("text")
  .text("Water boils at 100°C")
  .attr("x", 20)
  .attr("y", 50)
  .attr("font-family", "sans-serif")
  .attr("font-size", "40px");
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>