将 UTF-16 图像加载到内存中
Posted
技术标签:
【中文标题】将 UTF-16 图像加载到内存中【英文标题】:Loading a UTF-16 image into memory 【发布时间】:2013-04-16 10:40:02 【问题描述】:我正在尝试加载以 UTF-16 JFIF 格式保存的 ID3 图像标签。我使用的库 (Juce) 无法解析图像,因为它假定数据是原始二进制格式。
我已成功解析的大多数图像标签将编码报告为 ISO-8859 (latin-1),但由于 latin-1 是 UTF-16 的子集,因此无法进行转换。
如何以我想要的原始格式获得这个 UTF16 编码的二进制块?谁能告诉我以 UTF16 格式存储图像的好处?!
【问题讨论】:
【参考方案1】:latin1 不是 UTF-16 的子集!
我认为您误解了文本编码和二进制编码。 UTF-16 用于字符编码,基本单位是 16 位整数(UTF-8 使用 8 位整数)。
JPEG 图片 (JFIF) 是二进制编码的,其数据不应通过字符编码算法进行转换。
如果你真的这样做了,那你就不走运了,因为在二进制流上使用字符转换算法取决于当时使用的任何“源”文本字符集。
您或许可以尝试通过猜测初始源字符集,使用 iconv 将 (UTF-16) 二进制数据转换回二进制。
【讨论】:
以上是关于将 UTF-16 图像加载到内存中的主要内容,如果未能解决你的问题,请参考以下文章