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

时间:2013-04-16 10:40:02

标签: c++ utf-16 id3 juce

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

我已成功解析的大多数图像标记都将编码报告为ISO-8859(latin-1),但由于latin-1是UTF-16的子集,因此转换无效。

如何以我想要的原始格式获取此UTF16编码的二进制块?任何人都可以告诉我以UTF16格式存储图像的好处吗?!

1 个答案:

答案 0 :(得分:0)

latin1不是UTF-16的子集!

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

JPEG图片(JFIF)是二进制编码的,其数据永远不会通过字符编码算法进行转换。

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

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