簡體   English   中英

解釋ISO-8859-1

[英]interpretation iso-8859-1

早上好,我遇到一個我不明白的問題,讓我解釋一下:

我正在基於微控制器Arduino和Android應用程序進行項目。 arduino從pop3命令恢復郵件並將其發送到Android應用程序。 兩者僅通過SMS進行通信。

問題是:我通過SMS Broadcaster在Android上收到消息以恢復字符串(字符串)。

這是郵件恢復對象的示例:

回復:[階段]技術=?iso-8859-1?Q?vari?==?iso-8859-1?B?6WVz?= de溝通

得到以下結果:

回復:[階段]技術變化溝通

可能要注意的是,ISO中只有部分文本以兩種不同的方式編碼。

我的問題是:如何解析文本? 問題是,使用SMS傳輸我沒有選擇退貨類型。 這是我用來閱讀短信的代碼:

Bundle bundle = intent.getExtras();
    if (bundle != null) {
        Object[] pdus = (Object[])bundle.get("pdus");
        SmsMessage[] message = new SmsMessage[pdus.length];
        String messageBody = null;
        String phoneNumber = null;
        for (int i=0; i< message.length;i++) {

            message[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
        }
        messageBody = message[0].getMessageBody();
        phoneNumber = message[0].getDisplayOriginatingAddress();
        if (message.length > -1) {
            if (phoneNumber.equals(arduino)) {
                Toast.makeText(context, "New Data",Toast.LENGTH_SHORT ).show();
                //this.abortBroadcast();
                Log.d("BroadcastSMS", "***************phoneNumber:"+phoneNumber+" messageBody:"+messageBody);
                //TODO : ici, que faire du message "messageBody" pour l'interpréter.
            }
        }
    }

我發現自己已經收到了一個字符串消息。 我的本能是嘗試將自己編碼為“外殼”,但在此示例中我不了解如何編碼“ ed”。 澄清我的問題是:

  • 標簽ISO中的“ Q”和“ B”有什么區別?

  • 在我的示例中,第二個標簽應為ISO代碼“ ed”(如果單詞是膠粘的,請注意空格)。 但是,在文本的十六進制代碼[0-F] [0-F]之間沒有對應關系的情況下:6WVz

但是我可能走錯了路,如果您對這些問題有答案,或者可以通過其他方法解決?

還是謝謝你。

JM

它是RFC 2047編碼字。 Q指定帶引號的可打印編碼,而B表示base64。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM