java - 通过短信发送数据[]。转换 iso-8859-1

标签 java android sms

我正在尝试通过短信发送公钥。

到目前为止,我使用以下方法将 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/

相关文章:

java - Maven 拒绝从远程存储库下载 aar 打包的依赖项

android - 发送短信的号码数量有限制吗?

android - 为 Android 创建 PDU

Android - 带有单选单选按钮的 ListView

sms - IMS 上的 SMS 重要吗

java - Spring Autowiring 静态接口(interface)类

java - Android JNI 和 NewGlobalRef

java - 如何通过 JDBC 从 Postgresql-DB 进行备份?

android - 处理不需要 SD 卡的 Android 设备

android - 如何关闭 Android 上的所有声音