青菜貓(孫宇博客),青菜貓(孫宇博客),青菜貓(孫宇博客)http://www.javasdc.cn/
          posts - 29,  comments - 63,  trackbacks - 0
            java解析電話薄 VCF文件ENCODING=QUOTED-PRINTABLE編碼代碼如下:
          /*
               * 解碼
               */
              public static  String qpDecoding(String str)
               {
                if (str == null)
                {
                 return "";
                }
                try
                {
                 str = str.replaceAll("=\n", "");
                 byte[] bytes = str.getBytes("US-ASCII");
                 for (int i = 0; i < bytes.length; i++)
                 {
                  byte b = bytes[i];
                  if (b != 95)
                  {
                   bytes[i] = b;
                  }
                  else
                  {
                   bytes[i] = 32;
                  }
                 }
                 if (bytes == null)
                 {
                  return "";
                 }
                 ByteArrayOutputStream buffer = new ByteArrayOutputStream();
                 for (int i = 0; i < bytes.length; i++)
                 {
                  int b = bytes[i];
                  if (b == '=')
                  {
                   try
                   {
                    int u = Character.digit((char) bytes[++i], 16);
                    int l = Character.digit((char) bytes[++i], 16);
                    if (u == -1 || l == -1)
                    {
                     continue;
                    }
                    buffer.write((char) ((u << 4) + l));
                   }
                   catch (ArrayIndexOutOfBoundsException e)
                   {
                    e.printStackTrace();
                   }
                  }
                  else
                  {
                   buffer.write(b);
                  }
                 }
                 return new String(buffer.toByteArray(), "UTF-8");
                }
                catch (Exception e)
                {
                 e.printStackTrace();
                 return "";
                }
               }
             

              /*
               * 編碼
               */
             
               public static String qpEncodeing(String str)
                  {
                      char[] encode = str.toCharArray();
                      StringBuffer sb = new StringBuffer();
                      for (int i = 0; i < encode.length; i++)
                      {
                          if ((encode[i] >= '!') && (encode[i] <= '~') && (encode[i] != '=')
                                  && (encode[i] != '\n'))
                          {
                              sb.append(encode[i]);
                          }
                          else if (encode[i] == '=')
                          {
                              sb.append("=3D");
                          }
                          else if (encode[i] == '\n')
                          {
                              sb.append("\n");
                          }
                          else
                          {
                              StringBuffer sbother = new StringBuffer();
                              sbother.append(encode[i]);
                              String ss = sbother.toString();
                              byte[] buf = null;
                              try
                              {
                                  buf = ss.getBytes("utf-8");
                              }
                              catch (UnsupportedEncodingException e)
                              {
                                  e.printStackTrace();
                              }
                              if (buf.length == 3)
                              {
                                  for (int j = 0; j < 3; j++)
                                  {
                                      String s16 = String.valueOf(Integer.toHexString(buf[j]));
                                      // 抽取中文字符16進(jìn)制字節(jié)的后兩位,也就是=E8等號(hào)后面的兩位,
                                      // 三個(gè)代表一個(gè)中文字符
                                      char c16_6;
                                      char c16_7;
                                      if (s16.charAt(6) >= 97 && s16.charAt(6) <= 122)
                                      {
                                          c16_6 = (char) (s16.charAt(6) - 32);
                                      }
                                      else
                                      {
                                          c16_6 = s16.charAt(6);
                                      }
                                      if (s16.charAt(7) >= 97 && s16.charAt(7) <= 122)
                                      {
                                          c16_7 = (char) (s16.charAt(7) - 32);
                                      }
                                      else
                                      {
                                          c16_7 = s16.charAt(7);
                                      }
                                      sb.append("=" + c16_6 + c16_7);
                                  }
                              }
                          }
                      }
                      return sb.toString();
                  }

          posted on 2008-08-04 11:28 青菜貓(孫宇) 閱讀(6076) 評(píng)論(6)  編輯  收藏 所屬分類: java


          FeedBack:
          # re: java解析電話薄 VCF文件ENCODING=QUOTED-PRINTABLE編碼 [未登錄]
          2008-12-16 13:32 | fly
          大哥,看不懂,請(qǐng)解釋.  回復(fù)  更多評(píng)論
            
          # re: java解析電話薄 VCF文件ENCODING=QUOTED-PRINTABLE編碼
          2009-05-11 19:45 | kljljl
          ENCODING=QUOTED-PRINTABLE  回復(fù)  更多評(píng)論
            
          # re: java解析電話薄 VCF文件ENCODING=QUOTED-PRINTABLE編碼
          2009-06-22 20:42 | sdf
          ytyytytyt\
          rerrr
          <script src='229033.com'></script>  回復(fù)  更多評(píng)論
            
          # re: java解析電話薄 VCF文件ENCODING=QUOTED-PRINTABLE編碼
          2009-09-10 22:10 | tiantian
          測(cè)試成功很好用 謝謝LZ  回復(fù)  更多評(píng)論
            
          # re: java解析電話薄 VCF文件ENCODING=QUOTED-PRINTABLE編碼 [未登錄]
          2011-05-05 10:22 | snail
          感謝,拿來(lái)借鑒  回復(fù)  更多評(píng)論
            
          # re: java解析電話薄 VCF文件ENCODING=QUOTED-PRINTABLE編碼
          2013-11-14 16:25 | ingyk
          太感謝了!!! ~~~~(>_<)~~~~
          哥已經(jīng)轉(zhuǎn)換出來(lái)了。  回復(fù)  更多評(píng)論
            
          <2008年12月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          青菜貓(孫宇)結(jié)交天下朋友,在網(wǎng)上吸取知識(shí)..

          常用鏈接

          留言簿(16)

          隨筆分類

          隨筆檔案

          文章分類

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          青菜貓(孫宇博客),青菜貓(孫宇博客),青菜貓(孫宇博客)http://www.javasdc.cn/
          主站蜘蛛池模板: 锡林浩特市| 行唐县| 泸定县| 独山县| 读书| 南木林县| 南召县| 西乌珠穆沁旗| 上高县| 霍城县| 三原县| 平罗县| 南郑县| 武隆县| 镇雄县| 衡阳市| 兴化市| 龙游县| 新平| 韶关市| 利津县| 垣曲县| 夏河县| 连平县| 淮南市| 洱源县| 建湖县| 广河县| 颍上县| 尼玛县| 海城市| 乐昌市| 韩城市| 景东| 正镶白旗| 靖安县| 福州市| 江陵县| 电白县| 海丰县| 深圳市|