9
   dataurl    := "data:" [ mediatype ] [ ";base64" ] "," data
   mediatype  := [ type "/" subtype ] *( ";" parameter )
   data       := *urlchar
   parameter  := attribute "=" value

   value := token / quoted-string

根据 RFC 中的这些 BNF,将数据与 mime 类型分开的逗号实际上可以同时出现在 mime 类型和数据中,因此没有简单的方法(即 reg ex)将 URI 分成几部分。因此需要一个完整的解析器。

我想知道有人知道Java中的任何数据URI库吗?我的谷歌搜索没有产生任何结果。

4

2 回答 2

7

GitHub 上有一个名为jDataUri的 Java 数据 URI 解析器实现。

免责声明:我是作者

于 2013-06-29T13:11:31.730 回答
0

我最终不得不实现自己的解析器。RFC 提供了 BNF,因此可以实现完整的词法分析器和语法分析器。但是,对于这个简单的案例,我只是使用了简单的扫描+堆栈机制来跟踪引用的字符串并定位分隔逗号。javax.activation 的 MimeType 用于实际的 Mime 解析。

于 2012-09-13T20:44:28.927 回答