Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在我的字符串文字中间编码一个原始字节?(例如:“aaaXbbb”,其中X是原始字节)_Java_String_Unicode_Binary_Byte - Fatal编程技术网

Java 如何在我的字符串文字中间编码一个原始字节?(例如:“aaaXbbb”,其中X是原始字节)

Java 如何在我的字符串文字中间编码一个原始字节?(例如:“aaaXbbb”,其中X是原始字节),java,string,unicode,binary,byte,Java,String,Unicode,Binary,Byte,我想在我的消息中间编码一个原始字节: byte SOH = 0x01; String msg = "8=123" + SOH + "9=234"; System.out.println(msg); => 8=12319=234 这不是我想要的。我要原始字节在那里 只需用“\”转义一个字节,就可以对其进行编码 因此,要对字节0x01进行编码,可以执行以下操作: String s = "8=123\19=234"; 你知道一个字符串里面有一个字符数组,字符和字节不是一回事,对吧?是的,但

我想在我的消息中间编码一个原始字节:

byte SOH = 0x01;
String msg = "8=123" + SOH + "9=234";
System.out.println(msg); => 8=12319=234

这不是我想要的。我要原始字节在那里

只需用“\”转义一个字节,就可以对其进行编码

因此,要对字节0x01进行编码,可以执行以下操作:

 String s = "8=123\19=234";

你知道一个字符串里面有一个字符数组,字符和字节不是一回事,对吧?是的,但我想要一个简单的例子,一个字节=>一个字符。但是在Java中一个字节永远不是一个字符。一个字符总是两个字节。事实上,我没有错(尽管你可以说有些字符是四个字节而不是两个字节,但是一个
char
总是两个字节)
getBytes()
不会做您认为它会做的事情。但是如果你认为你知道的更好,我会去帮助别人。一个
字符串作为
char[]
存储在内部,每个
char
总是占用2字节的内存
getBytes()
不提供这些字节的值
getBytes()
使用JVM上的默认字符集*对
字符串进行
byte[]
编码,这通常取决于底层操作系统。例如,
“€”。getBytes()
很可能在Mac和Windows计算机上给出不同的结果,即使
字符串在这两种计算机上的存储方式相同。(*字符集基本上只是在
char[]
byte
[]之间转换的一种方式)请注意,这并不是真正的“字节”编码,它仍然在创建一个16位UTF字符,但这应该满足询问者(可能)的要求。