【问题标题】:String created with concatenating non ascii chars produces garbage while sending it as text message使用连接非 ascii 字符创建的字符串在将其作为文本消息发送时会产生垃圾
【发布时间】:2014-04-30 15:39:54
【问题描述】:

我有以下代码:

smsManager.sendTextMessage(number, null, 
        msgs[i].getMessageBody().toString() + "ławka", null, null);

ł 更改为l 时,我可以毫无问题地成功发送消息,但是当我使用ł 时,我的消息中出现垃圾。

我试过以下效果相同:

    message = msgs[i].getMessageBody().toString() + " ławka";
    byte b[] = null;
    try {
      b = message.getBytes("UTF-8");
      SmsManager smsManager = SmsManager.getDefault();
      smsManager.sendTextMessage(number, null, new String(b, "UTF-8"), null, null);
    } catch (UnsupportedEncodingException e) {
      e.printStackTrace();
    }

编辑

我也试过这个:

Locale l = Locale.getDefault();
message = String.format(l, "%s %s", msgs[i].getMessageBody().toString() ,"ławka");
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(number, null, message, null, null);

【问题讨论】:

    标签: java android string character-encoding sms


    【解决方案1】:

    在 SMS PDU 中,有效载荷是 7 位 ascii 文本。 Unicode,16 位,是一种数据信息。我不知道这个 SmsManager,但我认为您需要将 unicode 消息作为数据发送。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-28
      • 1970-01-01
      • 2015-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多