【问题标题】:IRI validation, unexpected fail with encoded <> symbolsIRI 验证,编码 <> 符号意外失败
【发布时间】:2014-02-04 11:31:41
【问题描述】:

我在我的项目中使用 abdera,它在从包含已编码 符号的内容中解析 IRI 地址时失败:&amp;gt; &amp;lt;
例外是:“org.apache.abdera.i18n.text.InvalidCharacterException: Invalid Character 0x3c(

我很困惑,因为我知道 IRI 格式中允许使用这些符号 (&amp;gt; &amp;lt;)。

请指教

编辑: 我正在使用 org.apache.abdera.model.Link 类的 getHref() 方法,链接类似于:http://blabla.com?xxx&amp;gt;yyy&amp;lt;zzz

【问题讨论】:

  • 您能否包含一个代码片段来显示您正在尝试的内容?
  • 我已经更新了问题,请看一下
  • 您是否尝试过转义&lt;&gt; 符号?即http://blabla.com?xxx\&gt;yyy\&lt;zzz。您可能需要为每个字符添加反斜杠; Java 在转义方面有点迂腐。

标签: debugging internationalization url-encoding apache-abdera iri


【解决方案1】:

是将符号解析为XML实体,所以有两种解决方案:

  • URI 编码getHref内的IRI

    encode("http://blabla.com?xxx&gt;yyy&lt;zzz", "utf-8")
    
  • 使用其他方法而不是getHref

参考文献

【讨论】:

    猜你喜欢
    • 2019-08-03
    • 2014-09-30
    • 1970-01-01
    • 2018-10-18
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-17
    相关资源
    最近更新 更多