java中getBytes的C#模拟

java中getBytes的C#模拟,c#,java,string,C#,Java,String,在java中,类字符串有一个奇妙的方法叫做getBytes。 在C#中,它也在另一个类编码中实现,但不幸的是,它返回无符号字节数组,这是一个问题 如何从字符串中获取C中有符号字节的数组?只需使用编码.GetBytes,然后使用类似的方法将字节[]转换为sbyte[]。但是,我强烈建议您改用无符号字节——解决它们的任何问题,而不是转移到有符号字节,这在Java中一开始就是一个错误。没有将字符串转换为有符号字节数组的内置方法的原因是,它很少是您真正想做的事情 如果您能告诉我们为什么无符号字节会给您带

在java中,类字符串有一个奇妙的方法叫做getBytes。 在C#中,它也在另一个类编码中实现,但不幸的是,它返回无符号字节数组,这是一个问题


如何从字符串中获取C中有符号字节的数组?

只需使用
编码.GetBytes
,然后使用类似的方法将
字节[]
转换为
sbyte[]
。但是,我强烈建议您改用无符号字节——解决它们的任何问题,而不是转移到有符号字节,这在Java中一开始就是一个错误。没有将字符串转换为有符号字节数组的内置方法的原因是,它很少是您真正想做的事情


如果您能告诉我们为什么无符号字节会给您带来问题,我们可能会帮助您解决这个问题。

类似于sbyte[]array1=(sbyte[])(array2;对的如果array2是byte[]?@Sergey:不,你不能在两者之间进行强制转换。您应该创建一个新数组,并使用
Buffer.BlockCopy
将内容从一个数组复制到另一个数组。顺便说一下,Java在
Charset
类中也有它(以及
CharsetDecoder
CharsetEncoder
),而
String.getBytes()
只是一个快捷方式。