我想在正文中发送一封包含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个字节到达目的地。我怎样才能做到这一点?
Receiver的字符串enconding对我来说无关紧要。我对角色如何在视觉上显示不感兴趣。我更关注信息,角色中的十六进制值。
答案 0 :(得分:2)
有一个相对较好的解释here或者您可以自己阅读RFC 1341.
基本上,电子邮件中只允许(未编码)7位US-ASCII字符。必须使用某种编码对其他任何内容(包括您的二进制字节)进行编码。这会将您的9个字节转换为超过9个字节(取决于所选的编码)。
电子邮件(SMTP)不是二进制协议。您可以通过电子邮件发送二进制数据,但它基本上是一个黑客。