社区
高通开发者论坛
帖子详情
UMD格式编码是什么?
vurten
2011-08-02 07:11:05
想在MTK 下实现手机阅读UMD格式,在网上下载了一本UMD格式的小说,但不知道UMD是什么编码? 该怎样实现转换成TXT阅读呢?
在BREW平台下,,求各位大哥帮忙。。。
...全文
2103
3
打赏
收藏
UMD格式编码是什么?
想在MTK 下实现手机阅读UMD格式,在网上下载了一本UMD格式的小说,但不知道UMD是什么编码? 该怎样实现转换成TXT阅读呢? 在BREW平台下,,求各位大哥帮忙。。。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sunqimin
2013-01-31
打赏
举报
回复
啊哈,,收藏了。。。
zaimeiyou
2011-08-09
打赏
举报
回复
路过看看了!!!!!!!
半吊子全栈工匠
2011-08-05
打赏
举报
回复
UMD格式是流行最广,被用户普遍接受并喜爱的手机电子书格式。
下面是我收藏的解析方法,希望有帮助。
MD文件有三种格式类型,一种叫纯文本格式,一种叫漫画&写真集格式,以及连环画(文字+图画).
文本格式中的文字流是用ZLIB进行压缩的,今天我们就先来了解一下文本格式的UMD文件吧.
文本格式类弄的UMD文件的组成格式如下:
1.首先是文件头,大部分文件都是靠文件头来区分文件格式的吧,Umd也不例外,Umd的文件头是0xde9a9b89,写到文件上前四位分别应该是0×89,0x9b,0x9a,0xde,这个大家理解起来应该没什么问题吧,以下的类似。(如果不是此格式,即不为UMD文件)
2.第5到9个字节为:0×23 0×01 0×00 0×08 0×01 (注:0×23,也就是字符’#’,这个字符在Umd中被用来作为功能块的分割符。)
3.第10个字节为:0×01/0×02.注0×01代表文本格式的UMD文件,0×02代表动漫格式的UMD文件
4.接下来2个字节的随机数.没有任何意义,可以扔掉.(呵呵,记住目前是第12个字节了)
5.第13个字节为:0X23(必须的)
6.解析接下来的2个字节0X02 0X00.即为数据类型.目前数据类型为2.代表的意思是以下的数据代表文件的TITLE.
那下面让我们观注如何解析TITLE吧.(呵呵.目前好像是第16个字节了吧)
7.第17个字节0X00(必须的)
8.解析第18个字节值.该字节的组成是:TITLE的长度*2 + 5.所以你要得到TITLE的长度必须要减五.
另外TITLE的长度为什么要*2,因为UMD是用UNICODE编码文件数据的.
9.注意现在就不能按多少个标准字节记数了,因为文件不一样,TITLE不一样.长度也不一样了.
那就继续看吧.再读TITLE长度个字节,就得到了TITLE的数据.
10.TITLE数据读完后,接下来1个字节是:0X23也就是’#'字符(必须的)
11.解析接下来的2个字节0X03 0X00.即为数据类型.目前数据类型为3.代表的意思是以下的数据代表文件的Author.
12.接下来1个字节是0X00(必须的)
13.接下来解析1个字节,该字节的组成Author的长度*2 + 5.所以你要得到Author的长度必须要减五.
14.下面会解析到year = 4,mouth = 5,day = 6,gender = 7,publisher = 8,Vendor = 9.
15.紧接着的第1个字节:0X23 也就是’#'(大家会发现,UMD是用#来进行数据隔离的)
16.解析2个字节:0x0B 0×00 数据类型为11
17.接下来2个字节:0X00 0X09(必须的)
18.接下来4个字节:代表内容长度.
19.内容长度解析完成,用分隔符’#’.所以接下1个字节是0X23
20.接下来2个字节代表数据类型.0X83章节偏移量.
21.接下来2个字节:0X01 0X09
22.接下来4个字节:代表一个随机数,目前看来是起同步作用的.
23.接下来1个字节:0X36 也就是’$'$了.哈哈.
24.接下来4个字节:也是随机数.但是和22的随机数一样
25.接下来4个字节:代表偏移量的长度*4 + 9.所以偏移量的长度为:你解析出来的(len – 9)/4.
26.接下来偏移量长度个字节:每个字节代表:每节章节的偏移地址.
27.偏移量数据块解析完成了.接下来又是数据分隔符’#’ 0X23
28.接下来2个字节:数据类型0X84 .章节标题
29.接下来2个字节:0X01 0X09(必须的)
30.接下来4个字节:随机数
31.接下来1个字节:$
32.接下来4个字节:随机数.二次随机数要相等
33.接下来4个字节:代表 (标题长度*2 + 1) + 9
34.接下来取得每个标题的数据.
分析一下:为了取得每个标题的数据,如果有三个标题显然要取三次 接下来1个字节:标题的长度*2 = count.
接下来count个字节:就是标题的内容数据.
35.接下来1个字节:$
36.接下来4个字节:随机数
37.接下来4个字节:数据流的长度 + 9 = count
38.接下来数据流长度个字节就是数据了.(注意目前的注意是ZLIB压缩的数据)
39.下面的数据可能会有下面二种情况的组合出现.
(1)
接下来1个字节:’#'分隔符
接下来2个字节数据类型:0XF1 0X00
接下来2个字节:0X00 0X15
接下来16个字节空数据
(2)
接下来1个字节:’#'分隔符
接下来2个字节数据类型:0X0A 0X00
接下来2个字节:0X00 0X09
接下来4个字节:随机数
40.接下来1个字节:’#'分隔符
41.接下来2个字节:数据类型 0X81 0X00
42.接下来2个字节:0X01 0X09
43.接下来4个字节:随机数
44.接下来1个字节:$
45.接下来4个字节:随机数
46.接下来4个字节: (页面数*4 + 9) = count
47.接下来页面数*4个字节.
48.接下来1个字节:’#'分隔符
49.接下来2个字节:0X82 0X00数据类型//封面图
50.接下来3个字节:0X01 0X0A 0X01
51.接下来4个字节:随机数
52.接下来1个字节:$
53.接下来4个字节:随机数
54.接下来4个字节:封面长度 + 9
55.接下来封面长度个字节
56.接下来1个字节:’#'分隔符
57.接下来2个字节:0X0C 0X00数据类型
58.接下来2个字节:0X0C 0X00数据类型//结束吧!!!
59.接下来2个字节:0X01 0X09
60.接下来4个字节:整个文件长度//
到此结束
UMD
炮手,
UMD
文件制作工具
UMD
炮手,方便快捷的制作
umd
格式
文件
UMD
TXT互转 电子书
格式
互转
UMD
,TXT
格式
互转绝对好用,骗子死全家。
UMD
电子书制作软件
利用软件可以把TXT
格式
的书籍转换为
UMD
格式
,便于阅读!!
php解析
umd
脚本
php读取已二进制读取
umd
文件,按照
格式
规范提取文件信息。
java版本的
umd
文件解析器
自己用java写的
umd
格式
解码和
编码
工具源码,只支持文本
格式
高通开发者论坛
2,851
社区成员
5,758
社区内容
发帖
与我相关
我的任务
高通开发者论坛
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
复制链接
扫一扫
分享
社区描述
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
人工智能
物联网
机器学习
技术论坛(原bbs)
北京·东城区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章