已解決
我在瀏覽器F12看到季率,內(nèi)容類型是 :text/plain;iso-8859-1野瘦。
我一開始以為,亂碼和請求方式有關系§海現(xiàn)在看應該沒關系鞭光。
響應頭中包含內(nèi)容類型:Content-Type
1、text/html ?就是說本次響應泞遗,響應內(nèi)容是超文本html惰许。(字符集為utf-8)
2、text/plain ?:響應內(nèi)容是純文本 ?(字符集iso-8859-1)
3刹孔、application/json :響應內(nèi)容是一個json對象啡省。(字符集utf-8)
而jetty服務器中娜睛,默認的就是根據(jù)不同的響應內(nèi)容,設置為不同的字符集卦睹,如上畦戒。
解決:
這個方法,我返回的內(nèi)容结序,就是String對象障斋。jetty服務器一看是純文本,就在響應頭中設置了:Content-Type:text/plain;iso-8859-1
我把響應內(nèi)容改為一個json對象徐鹤,之后垃环,jetty服務器,就在響應頭中改變了內(nèi)容類型:
Content-Type:application/json;utf-8
知識點:javaweb中服務器和客戶端(瀏覽器)返敬,是基于http協(xié)議的遂庄。
http協(xié)議規(guī)定了請求和響應的具體格式。
以后出現(xiàn)亂碼問題劲赠,先看一下響應頭涛目。大概就是看本次響應的內(nèi)容類型、字符集凛澎。
jetty作為一個網(wǎng)站的服務器霹肝,當然要處理http協(xié)議包。她默認了一些響應規(guī)則塑煎,當然web開發(fā)程序員應該也可以修改沫换。
這種亂碼問題,不是出在服務端最铁、就是客戶端讯赏。這是廢話,沒有第三端了炭晒。
可以借此多理解一下編程規(guī)則待逞。準確的說是原理甥角,這個問題的解決网严,感覺理解了一點原理。