有一段字符串,如:str="=?utf-8?Q?=E6=97=A5=E5=85=89=E4=B8=8E=E5=BB=BA=E7=AD=91=E7=BC=96=E8=BE=91=E9=83=A8?=";从开头看,应该是utf-8编码的,但我把它转为GBK,为何无效呢?下面两种方法都无效
方法一、String gbkStr = new String(str.getBytes("UTF-8"), "GBK");方法二、String gbkStr = URLDecoder.decode(str, "UTF-8");百思不解,难道不是utf-8编码吗?

解决方案 »

  1.   

    =?utf-8?Q?=E6=97=A5=E5=85=89=E4=B8=8E=E5=BB=BA=E7=AD=91=E7=BC=96=E8=BE=91=E9=83=A8?=
    这个只是字符串的内容,并不能说明字符串的编码吧?
      

  2.   

    就像String str="GB2312testest"
    你不能说上面这个就是GB2312编码的吧?
      

  3.   

    这个字符串是邮件的主题,我用文本打开邮件来看,是这个字符串,但我用outlook打开该邮件,则主题是中文的,为“日光与建筑编辑部”,那请问,outlook要如何认识它并转化为中文呢?
      

  4.   

    邮件的话是Base64编码的
    中文名叫64基编码,楼主百度一下好了
      

  5.   

    这是 MIME 编码,用 JavaMail 中的工具类 javax.mail.internet.MimeUtility