首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ByteString编码检测

ByteString编码检测
EN

Stack Overflow用户
提问于 2013-12-18 01:02:13
回答 2查看 162关注 0票数 1

作为练习,我想编写一个XML解析器(我知道有很多非常好的库,但我想亲自尝试)。我知道ByteString.Lazy可能是任何足够大的xml文件的最佳选择,因为在内存中,普通字符串是unicode点的列表。我的问题是:我应该使用Data.Text.Lazy.Encoding.decodeUtf8With作为预处理器还是直接将编码检测传递给解析器?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-18 01:57:37

如何做到这一点是指定的在XML标准本身中,虽然这是一个非规范性附录(也就是说,您可以用另一种方式)。

在这里复制算法将是多余的,所以我建议只遵循上面的链接。

票数 3
EN

Stack Overflow用户

发布于 2013-12-18 01:33:43

这是个棘手的问题..。XML文档的编码在文档本身中指定(在处理指令中)。这显然导致了一个鸡和蛋问题,在这里描述- XML头中的“编码”有什么用?

因此,如果您想要正确地做一些事情,首先必须弄清楚如何读取文档的第一行(它是每字符一个字节还是两个字节),然后读取它,然后使用正确的编码读取其余的文本。幸运的是,第一行将是32-127范围内的字符,因此这使事情变得简单一些。

如果是我,而我是作为一个学习活动,我只会限制医生utf8.(这里的细节只是管道)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20647818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档