java學習雜記

不廢話,直接代碼.這也算是一種學習總結吧!

class test  

{

public static void main (String[] args) throws java.lang.Exception

{

String a="我愛中國,\u6211\u7231\u4e2d\u56fd";

byte[] b=a.getBytes("UTF-8");

String res=new String(b ,"UTF-8");

System.out.println(res);

}

}

輸出結果爲:我愛中國,我愛中國.





Myeclipse背景修改


   代碼編輯界面默認顏色爲白色。對於長期使用的人來說,白色很刺激我們的眼睛,所以改變workspace的背景色,可以使眼睛舒服一些。設置方法如下:
   1、打開window / Preference,彈出Preference面板 
2、展開General標籤,選中Editors選項,展開。 
3、選中 Text Editors,右邊出現TestEditors面板。 面板中有這樣一個選項:Appearance color options;其中是各種板塊顏色的設置,其中有一項是background color,勾掉System Default,點擊'color',彈出顏色選擇面板,選擇喜好的顏色,單擊確定。注:背景顏色眼科專家推薦:色調85,飽和度,123,亮度205。文檔都不再是刺眼的白底黑字,而是非常柔和的豆沙綠色,這個色調是眼科專家配置的,長時間使用會很有效的緩解眼睛疲勞保護眼睛。 4、返回Test Editors,單擊Apply即可。展開Test Editors,還有其他選項,比如對錯誤提示的顏色樣式,可根據需要嘗試更改一下。

今天在調用百度api時發現返回的json數據中有unicode編碼的字符串。於是上網查閱了資料。發現了一個方法能解決這個問題。代碼如下:
1、未轉碼的情況下
package com.wwp.test;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;

/**
 * 
 * 百度api調用實例
 * */
public class ApiDemo {

	/**
	 * @param args
	 */
	
	public static String request(String httpUrl, String httpArg) {
	    BufferedReader reader = null;
	    String result = null;
	    StringBuffer sbf = new StringBuffer();
	    httpUrl = httpUrl + "?" + httpArg;

	    try {
	        URL url = new URL(httpUrl);
	        HttpURLConnection connection = (HttpURLConnection) url
	                .openConnection();
	        connection.setRequestMethod("GET");
	        // 填入apikey到HTTP header
	        connection.setRequestProperty("apikey",  "自己的apikey值");//這裏的第二個參數爲自己的key
	        connection.connect();
	        InputStream is = connection.getInputStream();
	        reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
	        String strRead = null;
	        while ((strRead = reader.readLine()) != null) {
	            sbf.append(strRead);
	            sbf.append("\r\n");
	        }
	        reader.close();
	        result = sbf.toString();
	    } catch (Exception e) {
	        e.printStackTrace();
	    }
	    return result;
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String httpUrl = "http://apis.baidu.com/apistore/idservice/id";
		String httpArg = "id=420984198704207896";
		String jsonResult = request(httpUrl, httpArg);
		
		System.out.println(jsonResult);
		
		
	}

輸出如下:

wKioL1eI-2fQMhM5AABG_bBRs8A806.png在上述類引入下列方法

 public static String decodeUnicode(String theString) {  
	        char aChar;  
	        int len = theString.length();  
	        StringBuffer outBuffer = new StringBuffer(len);  
	        for (int x = 0; x < len;) {  
	            aChar = theString.charAt(x++);  
	            if (aChar == '\\') {  
	                aChar = theString.charAt(x++);  
	                if (aChar == 'u') {  
	                    // Read the xxxx  
	                    int value = 0;  
	                    for (int i = 0; i < 4; i++) {  
	                        aChar = theString.charAt(x++);  
	                        switch (aChar) {  
	                        case '0':  
	                        case '1':  
	                        case '2':  
	                        case '3':  
	                        case '4':  
	                        case '5':  
	                        case '6':  
	                        case '7':  
	                        case '8':  
	                        case '9':  
	                            value = (value << 4) + aChar - '0';  
	                            break;  
	                        case 'a':  
	                        case 'b':  
	                        case 'c':  
	                        case 'd':  
	                        case 'e':  
	                        case 'f':  
	                            value = (value << 4) + 10 + aChar - 'a';  
	                            break;  
	                        case 'A':  
	                        case 'B':  
	                        case 'C':  
	                        case 'D':  
	                        case 'E':  
	                        case 'F':  
	                            value = (value << 4) + 10 + aChar - 'A';  
	                            break;  
	                        default:  
	                            throw new IllegalArgumentException(  
	                                    "Malformed   \\uxxxx   encoding.");  
	                        }  
	      
	                    }  
	                    outBuffer.append((char) value);  
	                } else {  
	                    if (aChar == 't')  
	                        aChar = '\t';  
	                    else if (aChar == 'r')  
	                        aChar = '\r';  
	                    else if (aChar == 'n')  
	                        aChar = '\n';  
	                    else if (aChar == 'f')  
	                        aChar = '\f';  
	                    outBuffer.append(aChar);  
	                }  
	            } else  
	                outBuffer.append(aChar);  
	        }  
	        return outBuffer.toString();  
	    }

然後把主函數改成

public static void main(String[] args) {
		// TODO Auto-generated method stub
		String httpUrl = "http://apis.baidu.com/apistore/idservice/id";
		String httpArg = "id=420984198704207896";
		String jsonResult = request(httpUrl, httpArg);
		
		System.out.println(decodeUnicode(jsonResult));
		
		
	}

輸出結果變爲

wKioL1eI_CmxznPYAAA1dCoVbD4134.png大功告成。

引用自:http://ruixiazun.blog.163.com/blog/static/906879182013112439117/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章