我正在尝试通过短信发送公钥。
到目前为止,我使用:
将byte []转换为StringString 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”转换为字母和数字? 如果不是,有没有人有任何其他想法? (也许是另一种编码?)
如果您想了解更多详情,请发表评论,谢谢。
答案 0 :(得分:4)
您无法将纯二进制数据转换为此类字符串,因为所有字节都不代表有效字符。使用base-64将您的字节数组转换为可读的ascii字符串。 Apache commons编解码器有一个免费的实现。