gpt4 book ai didi

objective-c - 解析二进制MOBI文件: best approach?

转载 作者:行者123 更新时间:2023-12-03 17:21:53 24 4
gpt4 key购买 nike

它在二进制数据之间包含元数据。我可以解析标题为 Agent_of_Chang2e 的第一行,但我还需要获取标题底部的元数据。我知道它没有标准细节。

enter image description here

此代码无法解码底线。例如,我收到以下格式错误的文本:

FÃHANGE</b1èrX)¯­ÌiadenÕniverse<sup><smalÀ|®¿8</¡Îovelÿ·?=SharonÌeeándÓteveÍiller8PblockquoteßßÚ>TIa÷orkyfiction.Áll@eãacÐ0hðortrayedén{n)áreïrzus0¢°usly.Ôhatíean0authhmxétlõp.7N_\

©ß© 1988âyÓOOKãsòeserved.0ðart)publicaZmayâehproduc

  NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
char buffer[1024];
FILE* file = fopen([path UTF8String], "r");
if (file != 0)
{
while(fgets(buffer, 1024, file) != NULL)
{
NSString* string = [[NSString alloc] initWithCString: buffer encoding:NSASCIIStringEncoding];
NSLog(@"%@",string);
[string release];
}
fclose(file);
}
[pool drain];

最佳答案

nielsbot 已经发布了 link to the format specification

正如您所读到的,该文件不是文本文件,而是二进制编码的。使用 NSString 实例解析它并不是一个好主意。

您必须读取文件二进制文件,即。 e.使用 NSData:

NSData content = [NSData dataWithContentsOfFile:path];

那你就得自己把相关信息拿出来了。例如,如果您想读取未压缩的文本长度,您会在链接文档中发现该信息从位置4开始,长度为4。

int32_t uncompressedTextLength; // 4 bytes are 32 bit.
[content getBytes:&uncompressedLenght range:NSMakeRange(4, 4)];

也许你必须处理字节顺序。

关于objective-c - 解析二进制MOBI文件: best approach?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22713027/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com