首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Java中获取ASCII-6编码

在Java中获取ASCII-6编码
EN

Stack Overflow用户
提问于 2011-09-07 23:31:57
回答 2查看 1.9K关注 0票数 2

我使用的是传统的二进制消息格式,它需要ASCII-6 (6位ascii)编码的字符序列。我找不到ASCII6的定义,但他们在规范中定义了以A=0x01、B=0x02等开头的字符映射。

我想知道java中是否存在用于ASCII-6的字符集。如果没有,你能以某种方式创建或定义自己的字符集吗?如果没有,还有比创建字符到ascii-6编码值的映射更好的解决方案吗?

EN

回答 2

Stack Overflow用户

发布于 2011-09-08 00:13:33

我不确定是否存在6位编码,其中A是0x01,B是0x02等等,但大多数6位编码中的字符可以通过整数运算与ASCII7字符互换。例如,可以通过添加32 (以10为基数)将SIXBIT DEC encoding中的字符更改为ASCII-7字符,反之亦然,因为SIXBIT编码方案仅包含ASCII-7字符集中的可打印字符。

要实现对这种涉及ByteCharacter的转换的支持,您需要编写一个Charset并使用CharsetProvider注册它。棘手的部分是将6位序列映射到Unicode字符,因为Byte是字符集EncodersDecoders操作的最基本的单元。另一方面,如果您正在对6位编码字符进行操作,每个字符都需要8位宽的字符,那么上述算术操作就变得很容易,否则您将需要跟踪编码器/解码器是否处于无效状态。

票数 3
EN

Stack Overflow用户

发布于 2011-09-07 23:43:47

您可以通过编写扩展CharsetProvider的类并使其可用于您的应用程序来定义您自己的字符编码。例如,JCharset对一些较少使用的编码执行此操作。据我所知,即使它们不支持旧的ASCII变体,但您可以通过研究该实现来了解它是如何实现的。这并不是特别难,只是有点乏味。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7336509

复制
相关文章

相似问题

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