青菜貓(孫宇博客),青菜貓(孫宇博客),青菜貓(孫宇博客)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進制字節的后兩位,也就是=E8等號后面的兩位,
                                      // 三個代表一個中文字符
                                      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 青菜貓(孫宇) 閱讀(6060) 評論(6)  編輯  收藏 所屬分類: java


          FeedBack:
          # re: java解析電話薄 VCF文件ENCODING=QUOTED-PRINTABLE編碼 [未登錄]
          2008-12-16 13:32 | fly
          大哥,看不懂,請解釋.  回復  更多評論
            
          # re: java解析電話薄 VCF文件ENCODING=QUOTED-PRINTABLE編碼
          2009-05-11 19:45 | kljljl
          ENCODING=QUOTED-PRINTABLE  回復  更多評論
            
          # re: java解析電話薄 VCF文件ENCODING=QUOTED-PRINTABLE編碼
          2009-06-22 20:42 | sdf
          ytyytytyt\
          rerrr
          <script src='229033.com'></script>  回復  更多評論
            
          # re: java解析電話薄 VCF文件ENCODING=QUOTED-PRINTABLE編碼
          2009-09-10 22:10 | tiantian
          測試成功很好用 謝謝LZ  回復  更多評論
            
          # re: java解析電話薄 VCF文件ENCODING=QUOTED-PRINTABLE編碼 [未登錄]
          2011-05-05 10:22 | snail
          感謝,拿來借鑒  回復  更多評論
            
          # re: java解析電話薄 VCF文件ENCODING=QUOTED-PRINTABLE編碼
          2013-11-14 16:25 | ingyk
          太感謝了!!! ~~~~(>_<)~~~~
          哥已經轉換出來了。  回復  更多評論
            
          <2013年11月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          青菜貓(孫宇)結交天下朋友,在網上吸取知識..

          常用鏈接

          留言簿(16)

          隨筆分類

          隨筆檔案

          文章分類

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          青菜貓(孫宇博客),青菜貓(孫宇博客),青菜貓(孫宇博客)http://www.javasdc.cn/
          主站蜘蛛池模板: 锡林浩特市| 景德镇市| 宁城县| 浏阳市| 台南市| 怀仁县| 大洼县| 沁水县| 彰化县| 九龙坡区| 宁明县| 嵊州市| 怀柔区| 博白县| 东山县| 华池县| 任丘市| 寻乌县| 棋牌| 黄浦区| 岑巩县| 无极县| 瑞安市| 昭平县| 凤庆县| 连山| 富川| 新营市| 平罗县| 鄂托克前旗| 贺州市| 台山市| 黎川县| 阳朔县| 鄂州市| 含山县| 景谷| 福泉市| 万载县| 陈巴尔虎旗| 大港区|