我正在尝试通过短信发送公钥。
到目前为止,我使用以下方法将 byte[] 转换为字符串:
String message = new String(ByteArray, "iso-8859-1");
公钥如下所示(发送时):
0I0 *†H†÷ 8 05 .:y&¯GìL5VØÞ<£  ßÄ´Q•4YŸß ÈW8‰³S›‰_ó4aÀ”[Ù u
但是收件人收到的消息是这样的:
0I0 *?H?? 8 05 .:y&?GìL5VØ?<£ A ?ßÄ?Q?4Y?ß?EW8??S??_o4aA?[U u
一些字符被损坏并被替换为“?”手机无法识别它们。
问题: 有没有办法将“iso-8859-1”转换为字母和数字? 如果没有,有人有其他想法吗? (也许是另一种编码?)
如果您想了解更多详细信息,请评论,谢谢。
最佳答案
您无法将纯二进制数据转换为这样的字符串,因为所有字节都不代表有效字符。使用 base-64 将字节数组转换为可读的 ascii 字符串。 Apache commons 编解码器有一个免费的实现。
关于java - 通过短信发送数据[]。转换 iso-8859-1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9711352/