获取Java中的ASCII-6编码

获取Java中的ASCII-6编码,java,character-encoding,ascii,Java,Character Encoding,Ascii,我使用的是传统的二进制消息格式,需要ASCII-6(6位ASCII)编码的字符序列。我找不到ASCII-6的定义,但他们在规范中定义了字符映射,从a=0x01、B=0x02等开始 我想知道java中是否存在ASCII-6的字符集。如果没有,您能否以某种方式创建或定义自己的角色集?如果没有比创建字符到ascii-6编码值的映射更好的解决方案?您可以通过编写一个扩展CharsetProvider的类并使其可用于应用程序来定义自己的字符编码。例如,对一些使用较少的编码执行此操作。正如我所看到的,即使它

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


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

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

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


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

如果每个字符都需要6位,则如何将其压缩到8位字节中?每3个字节有4个字符吗?编写自己的转换器可能比开发一个字符集要简单。不,他们确实希望每个字符都打包成6位,而不是8位。我将使用类似的东西来处理在非字节边界上写东西的问题。但我必须首先将每个字符转换为ascii-6编码,然后写出6个最低有效位,我认为在这里使用预定义的或我自己的字符集是最快的。所有数据流基本上是每个字节8位。没有其他选择。您可以使它看起来像是6位或16位的,但您必须知道如何将其映射到8位流。我建议您先阅读有关字符集的文档,然后再决定它是否最简单。;)是的,我认为现有的字符集或编写字符集只是将utf-8/utf-16字符映射到ascii-6编码的最简单方法(最少行)。然后我必须使用这些二进制输出流中的一个来写出每个字节/字符的6个最低有效位?对我来说,下载链接链接返回到,这就是我开始的地方是的,但是你需要先点击复选框来接受许可条款(可能还必须启用Javascript)。哦,我的公司代理阻止了Javascript文件。谢谢,我去看看。