解码Android中的ENCODING = QUOTED-PRINTABLE字符串

时间:2013-06-02 07:36:07

标签: java android decode vcard

我正在尝试解码我​​的vcard中的字符串

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

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

我已按照建议here进行解码:使用codec库。但是,它仍然将字符串显示为;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);

1 个答案:

答案 0 :(得分:2)

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

  • 邮政信箱
  • 扩展地址
  • 街道地址
  • 地区(例如城市)
  • 地区/国家
  • 邮政编码
  • 国家/地区名称