DataURI

DataURI

1.DataURI协议允许文档编写者在文档中内嵌小文件

2.格式:data:[][;base64],

A.mediatype: 文件类型,可选
B.字符编码指的是后面数据当前编码类型可选:
C.<data>:是按照前面字符编码类型进行编码之后的数据
D.mediatype默认为text/plain,编码类型默认为charset=US-ASCII

3.Linux 和 Mac OSX 终端可以使用以下命令进行base64编码

uuencode -m infile remotename
  • 比如在终端中执行 uuencode -m test demo,输出如下:其中
begin-base64 664 demo
YSBzbGlnaHRseSBsb25nZXIgdGVzdCBmb3IgdGV2ZXIK
====

4.Data URI 创建和使用时存在的问题

A.语法:

  • 创建和使用的时候容易忘记数据部分前面需要使用逗号隔开

    B.data URI 长度限制:

  • 数据转换为base64编码之后可能会很长,某些浏览器限制URLs在65535个字符,限制URLs中的数据部分为65529字符

    C.缺少错误处理机制:

  • 格式里面如果参数无效,不会有提醒

    D.没有支持查询字符串功能:

  • data URI 里面的数据如果包含查询字符串,查询字符串无法拥有作为查询字符串的功能,只是

    表面上被呈现在dataURI的内容里面,也就是说如果数据包含有查询字符串格式的字符,那么并

    不会被当成查询字符串,以下对带有HTML和查询字符串格式的数据进行dataURI编码后如下:

    ?arg=val只是被当成页面内容的一部分,而不是作为查询字符串

data:text/html,lots of text...<p><a name%3D"bottom">bottom</a>?arg=val

页面内容:

lots of text...<p><a name="bottom">bottom</a>?arg=val

5.JavaScript 进行base64编码和解码:

A.编码:

a.encodeURI: 用于没有?#功能性分割符的字符串base64编码,对整个URI进行的

b.encodeURIComponent:URLs中如果是含有?#就该使用此方法将需要编码的内容逐个分离进行

base64编码,然后再将各部分拼接成完整的URLs

B.解码:

    a.decodeURI:返回整个统一资源占位符的非encodeURI形式

    b.decodeURIComponent: 返回统一资源占位符的一部分非encodeURI形式

C.decodeURIComponent()和encodeURIComponent()方法解决了?#等特定功能分隔符无法实现

功能的问题

参考链接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值