我需要在Java中将byte []转换为char []。 使用的Unicode编码是UTF-16。
简而言之,我需要Java等同于c#'
UnicodeEncoding.Unicode.GetChars(byte[] bytes);
另外,我只需要将byte []的一部分转换为char []
public virtual char[] GetChars(byte[] bytes, int index, int count);
答案 0 :(得分:1)
你可以试试这个:
byte[] b = ...
char[] c = new String(b, "UTF-16").toCharArray();
来自String(byte[] bytes, String charsetName)
:
使用指定的字符集解码指定的字节数组,构造一个新的
String
。
答案 1 :(得分:0)
C#API:
public virtual char [] GetChars(byte [] bytes);
爪哇:
byte [] byte = ...
char [] char = new String(byte,“UTF-16”)。toCharArray();
返回char []的Java方法:
data is undefined
C#API:
public virtual char [] GetChars(byte [] bytes,int index,int count);
爪哇:
迭代字节数组中的必需字节
public static char[] getCharsFromBytes(byte[] bytes, String type) {
try {
String byteConvert = new String(bytes, "UTF-16");
return byteConvert.toCharArray();
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(DataTypeUtil.class.getName()).log(Level.SEVERE, null, ex);
return null;
}
}
答案 2 :(得分:0)
public static char[] GetChars(byte[] bytes, int index, int count) {
try {
return new String(java.util.Arrays.copyOfRange(bytes,index,index+count), "UTF-16").toCharArray();
} catch (java.io.UnsupportedEncodingException e) {
assert false: "Your JRE is broken (UTF-16 not supported)";
return null;
}
}