【问题标题】:Special characters not working in svg特殊字符在 svg 中不起作用
【发布时间】:2016-08-02 16:00:55
【问题描述】:

我有一些svg,其中包含一些特殊字符。在将其解析为 xml 时,出现错误。这里是svg

https://www.printhubpro.co.uk/images/export.svg

svg 中有这样的字符串

ú (may be representing EURO)

导致问题的原因。

我想在svg 中允许特殊字符。 有什么建议吗?

【问题讨论】:

  • 您将 svg 用作什么 mime 类型?你设置的是什么编码?
  • 就这个<svg xml:space="preserve" viewBox="847.565 397.65 584.37 819.7" height="2480.3163" width="1748.03244" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg">没有别的@RobertLongson
  • 这如何解决我关于 mime 类型的问题?
  • fabric js 做画布到 svg。所以我不知道
  • PHP 等效于 encodeURIComponent 解决了这个问题。

标签: php xml svg xml-parsing


【解决方案1】:

您尝试加载的 SVG 无效。如果您在 Chrome 中访问它,它根本不会呈现该部分。

error on line 22 at column 412: Encoding error

Entity encode您的特殊字符,然后再包含它们。

【讨论】:

  • 是的,因为其中有特殊字符,例如 ú。这就是问题所在,我想在 svg 中允许特殊字符。
  • @HimanshuBhardiya 您不能只将特殊字符转储到 SVG(实际上是 XML 文件)中。您必须对它们进行实体编码。 en.wikipedia.org/wiki/…
  • 任何更好的解决方案?
  • @HimanshuBhardiya 解决方案是不生成带有特殊字符的 SVG。您必须正确编码字符。这是强制性的。如果你不这样做,那么任何 SVG 渲染器都不会对你的文件有意义。
  • 但 svg 是从画布动态生成的,因为我正在尝试使用替换这样的文本进行编码 $svg_op = str_replace('ú','£',$svg_op); 不起作用,但如果我手动替换 £ 然后它的工作。我在这里做错了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-02
相关资源
最近更新 更多