从字符串中获取原始字节数组

时间:2017-01-12 12:29:43

标签: java arrays string

我的问题是,是否有使用标准java-library-functions将String转换为byte-Array的简短方法? "字符串"确实有 NO ENCODING ,字符串本身是一个无条件的字符串,但这是我得到它的方式。我自己没有编码,我无法改变它,但我必须处理它。标准String.getBytes()将不起作用,因为某些值总是得到"?" -ed out并使基础二进制数据显然无用。

有什么想法吗?

它与此处的问题基本相同:How do I get a consistent byte representation of strings in C# without manually specifying an encoding?,而不是C#for Java。我搜索了一段时间,但我找不到任何合适的解决方案。

提前致谢。

2 个答案:

答案 0 :(得分:1)

不幸的是,Java中没有“String无编码”这样的东西。正如documentation所说:

  

String表示UTF-16格式的字符串

因此,当您将数据作为String获取时,它已经被编码,并且无法绕过它。

答案 1 :(得分:0)

在Java中,Stringchar数组的包装,也不是byte。此外,字符串是不可变的,因此不允许直接访问基础char[]

最接近直接访问的内容是:

  • 制作char数组的副本
char[] toCharArray() 
     

将此字符串转换为新的字符数组。

  • 获取索引
  • 的字符
char charAt(int index)
     

返回指定索引处的char值。