首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在JAI字段中,可以将字符集指定为编码ASCII的默认设置吗?

在JAI字段中,可以将字符集指定为编码ASCII的默认设置吗?
EN

Stack Overflow用户
提问于 2013-09-02 15:46:30
回答 1查看 600关注 0票数 0

我使用JAI将字符串存储在TIFF报头中。一些字符串包含值大于127天的字符(例如,'é'233d)。

当我用十六进制编辑器打开生成的TIFF文件时,我可以看到字节233d,但是当我试图通过TIFFField.getAsString()读取它时,我得到的是'?' (Unicode 0xfffd“替换字符”)。我检查了TIFF 6.0规范,但他们只提到了“7位ASCII”。

我想告诉JAI使用ISO-8859-1 Charset来解码字符串。这有可能吗?我还没有在(旧的) javadoc中找到任何东西。作为最后的手段,我也可以对字符串使用URL编码,但最好避免使用URL编码。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-03 07:30:13

根据规范,定义为ASCII的TIFF标记只允许包含普通的7位ASCII。

不幸的是,这在现实世界中并不是很有用(我们并不是每个人都会说英语),所以很多软件都会将UTF8甚至ISO-8859-x编码的字符串写入这些字段,即使它违反了规范。在ASCII标记中不允许进行其他编码。

JAI在读取方面非常严格,可能会将字符串解码为普通的ASCII,并且由于'é‘不是该字符集的一部分,它将其替换为"unicode替换字符“。

你最好的选择是做以下几件事之一:

  • 如果标记允许,则使用字节或未定义,而不是使用ASCII +编码规范。
  • 如果可能,使用不同的标记来编写值(允许字节或未定义的值+编码规范)。
  • 如果上述两种方法都不可能,您最好的选择是获取实际字节并自己解码,或者使用不同的库来解析TIFF结构。
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18576865

复制
相关文章

相似问题

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