将Java字符串转换为WORD,DWORD或QWORD

时间:2012-11-10 04:49:29

标签: java word dword

我正在研究Java多媒体IO项目并遇到了一个问题,当我尝试编写DWORD时,它的长度为16个字节,而不是4个字节。我正在使用以下代码将4字符串转换为16位小端字节数组;

word.getBytes("UTF-32LE")

如果有些问题,请告诉我为什么数组长4个字节。

谢谢, 小连

2 个答案:

答案 0 :(得分:1)

因为您正在编码为每个字符需要4个字节的格式(UTF-32)See description here

如果你想让它成为每个字符的字节,请使用“UTF-8”而不是“UTF-32LE”

答案 1 :(得分:0)

好的,我做了一些调试,我发现当直接从'word.getBytes(“UTF-32LE”)写字节时,有一个额外的12个字节被添加,例如;

如果我要"RIFF".getBytes("UTF-32LE")我会在文件中获得R000I000F000F000,所以我使用以下代码来删除这些零,

    byte[] bits = word.getBytes("UTF-32LE");
    byte[] dword = new byte[4];
    System.arraycopy(bits, 0, dword, 0, 1);
    System.arraycopy(bits, 4, dword, 1, 1);
    System.arraycopy(bits, 8, dword, 2, 1);
    System.arraycopy(bits, 12, dword, 3, 1);
    write(dword);

我不知道我遇到的问题是否是一个错误,或者是否是它返回的原因。