将UTF-16图像加载到内存中

Loading a UTF-16 image into memory

本文关键字:内存 加载 UTF-16 图像      更新时间:2023-10-16

我正在尝试加载已保存在UTF-16 JFIF格式的ID3图像标签。我使用的库(Juce)无法解析图像,因为它假设数据是原始二进制格式。

我成功解析的大多数图像标签都报告编码为ISO-8859 (latin-1),但由于latin-1是UTF-16的子集,因此转换不起作用。

我怎么能得到这个UTF16编码二进制块在我想要的原始格式?有人能告诉我用UTF16格式存储图像的好处吗?!

latin1不是UTF-16的子集!

我想你误解了文本编码和二进制编码。UTF-16用于字符编码,基本单位是16位整数(UTF-8使用8位整数)。

JPEG图片(JFIF)是二进制编码的,它的数据不应该通过字符编码算法进行转换。

如果你真的这样做了,你就不走运了,因为在二进制流上使用字符转换算法取决于当时使用的"源"文本字符集。

您可以尝试通过猜测初始源字符集,使用iconv将(UTF-16)二进制数据转换回二进制。