【发布时间】:2019-09-19 09:29:32
【问题描述】:
我需要逐行读取从服务器接收的文件,检查数据是否需要utf8转换,如果需要将其转换为utf8并传递。
如何检查是否需要 utf8 转换?
为了转换为 utf8,我可以使用 icu 库中的 toUTF8String。 toUTF8String 是否在内部检查输入是否已经在 UTF8 中?
【问题讨论】:
-
我认为这很难做到。服务器不知道它的数据是什么格式的吗?如果不是 UTF8 - 7 位 ASCII 是什么?带有代码页 (ANSI) 的 8 位 ASCII?还有什么?
-
检查uchardet。
-
@gustgr 好吧,你可以检查它是否不是 UTF-8 或检查它是否是概率 UFT-8,但不是如果它 is。
-
@TomBlodget 如果流损坏或截断,我明白你在说什么。但是假设一个人获得了代表编码代码点的 1、2、3 或 4 个字节的完整未损坏序列,那么可以确定它们是否是有效的 UTF-8,对吧?我想这并不一定意味着它真的是 UTF-8,而是像 UTF-8 这样的东西。这就是你说“概率”的原因吗?