我的问题是,是否有使用标准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。我搜索了一段时间,但我找不到任何合适的解决方案。
提前致谢。
答案 0 :(得分:1)
不幸的是,Java中没有“String
无编码”这样的东西。正如documentation所说:
String
表示UTF-16格式的字符串
因此,当您将数据作为String
获取时,它已经被编码,并且无法绕过它。
答案 1 :(得分:0)
在Java中,String
是char
数组的包装,也不是byte
。此外,字符串是不可变的,因此不允许直接访问基础char[]
。
最接近直接访问的内容是:
char[] toCharArray()
将此字符串转换为新的字符数组。
和
char charAt(int index)
返回指定索引处的char值。