Java 如何获得确切的字节数?

Java 如何获得确切的字节数?,java,android,smtp,Java,Android,Smtp,我想发送一封正文中包含9个特定字节的电子邮件: byte one = (byte) 161; byte two = (byte) 1; byte three = (byte) 254; byte four = (byte) 1; byte five = (byte) 255; byte six = (byte) 255; byte seven = (byte) 255; byte eight = (byte) 254; byte nein = (byte) 255; String unicod

我想发送一封正文中包含9个特定字节的电子邮件:

byte one = (byte) 161;
byte two = (byte) 1;
byte three = (byte) 254;
byte four = (byte) 1;
byte five = (byte) 255;
byte six = (byte) 255;
byte seven = (byte) 255;
byte eight = (byte) 254;
byte nein = (byte) 255;

String unicode = new String(new byte[] { one, two, three, four, five, six, seven, eight, nein }, "windows-1258");
emailMessage.setText(unicode);
每次我发送这些字节时,会有另外9个字节到达目的地。我怎样才能做到这一点


接受者的弦乐重唱对我来说并不重要。我对角色的视觉显示方式不感兴趣。我更关心的是信息,字符中的十六进制值。

有一个比较好的解释,或者你可以自己阅读RFC1341

基本上,电子邮件中只允许使用7位US-ASCII字符(未编码)。任何其他内容(包括二进制字节)都必须使用某种编码进行编码。这将把你的9个字节转换成9个以上的字节(取决于所选择的编码)


电子邮件(SMTP)不是二进制协议。你可以通过电子邮件发送二进制数据,但这基本上是一种黑客行为。

我认为9是9而不是不-关于一般信息,你检查过MSB、LSB、填充吗?你检查过接收者字符串编码吗?接收者的字符串编码对我来说并不重要。我对角色的视觉显示方式不感兴趣。我更关心的是信息,字符中的十六进制值。电子邮件不支持发送二进制数据。您必须将二进制文件编码为文本,以便发送时不会损坏。