1

我正在尝试从我的 vcard 中解码一个字符串

ADR;WORK;;ENCODING=QUOTED-PRINTABLE:;Building 723 Room 317;;Auckland;;Private Bag 92019 Auckland;New Zealand

转换成标准文本以显示在我的 Android 视图上。我已经使用http://android-vcard.googlecode.com/hg/examples/ReadExample.java中的示例使用 vCard 解析器解析了地址字段。

我已按照此处的建议进行解码:使用编解码器库。但是,它仍然显示字符串;Building 723 Room 317;;Auckland;;Private Bag 92019 Auckland;New Zealand而不是解码它。

我的解码代码:

    byte[] byteAddress = address.getBytes();
    String decodedAddress = "";
    try {
        decodedAddress = new String(QuotedPrintableCodec.decodeQuotedPrintable(byteAddress));
    } catch (DecoderException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    TextView textView4 = (TextView) findViewById(R.id.address);
    textView4.setText(decodedAddress);
4

1 回答 1

2

那是因为带引号的可打印字符串;Building 723 Room 317;;Auckland;;Private Bag 92019 Auckland;New Zealand与未编码的字符串完全相同。分号;与带引号的可打印编码无关,相反,adr它是一个结构化元素,它使用分号来表示其部分,按以下顺序:

  • 邮政信箱
  • 扩展地址
  • 街道地址
  • 地区(例如城市)
  • 地区/州
  • 邮政编码
  • 国家的名字
于 2013-06-02T17:25:19.157 回答