從本機發送信息到另外一臺服務器上時中文亂碼html
別的電腦都沒問題,只有本機經過sts開tomcat併發送信息到另外一服務器時中文亂碼。java
先說個人解決辦法:(一開始的解決辦法:刪掉原來的workspace換個新的)後來想了下緣由,把workspace編碼改爲與項目一致的編碼,果真就正常了。如:我改爲gbk後中文顯示正常了windows
下面是排除問題過程:瀏覽器
1.覺得是tomcat編碼的問題,後來重裝了tomcat發現不是,tomcat
2.覺得是代碼有問題,打包給別的電腦用沒問題,服務器
3.以爲是sts的問題,把sts刪了,從新裝一個,發現也不是,併發
4.再後來以爲是jdk版本的問題,換了個新版本發現不是。eclipse
後來把打包好的war包放到tomcat目錄下直接啓動,發現沒問題。其實這一步驟就排除了tomcat、jdk的問題了,以前沒想到。jsp
既然上面的都不是,那究竟是哪裏有問題,又想了好久後忽然發現當時刪除sts的時候沒有把workspace刪了,用的仍是以前那個workspace,而後刪了以後換一個workspace果真沒問題了!svn
後來找了下緣由,看到下面這篇文章才知道是workspace編碼改動後致使的。
——————————————————————————————————————————
下面參考:http://blog.sina.com.cn/s/blog_aee312bf0101e1io.html
在網上看到這篇文章才知道原來真的是workspace的編碼改動致使的問題,
因爲我根據個人下篇文章《教你解決svn比較時中文亂碼的問題》改動了workspace的編碼,雖然svn是能夠正常顯示中文了,可是因爲項目是使用gbk編寫,致使這個中文亂碼問題。
關於編碼:
在Myeclipse導入一個項目,有中文亂碼問題,解決方法以下:
1、將整個project設置編碼UTF-8(UTF-8能夠最大的支持國際化)
windows->Preferences->general->Workspace->Text file encoding->Other框中的Text file encoding改成UTF-8。
2、對java源文件編碼設置爲UTF-8.
windows->Preferences->general->Context Types->Text,選擇Java Source File,在下面的Default encoding輸入框中輸入UTF-8,點Update,則設置Java文件編碼爲UTF-8。
1、設置新建常見類型文件的默認編碼格式,也就是文件保存的格式。
在不對MyEclipse進行設置的時候,默認保存文件的編碼,通常跟簡體中文操做系統(如windows2000,windowsXP)的編碼一致,即GBK。
在簡體中文系統下,ANSI 編碼表明 GBK編碼;在日文操做系統下,ANSI 編碼表明 JIS 編碼。
Window-->Preferences-->General -->content Types
在右側窗口中展開每個子項,依次輸入編碼格式,如「UTF-8」點擊「update」就設置好了。
例如:在以上設置中,設置jsp默認編碼格式爲「UTF-8」,那麼之後新建的jsp文件,都是以「UTF-8」的格式保存的。
一樣設置java默認編碼格式爲「UTF-8」,那麼之後新建的java文件,都是以「UTF-8」的格式保存的。
設置html默認編碼格式爲「UTF-8」,那麼之後新建的html文件,都是以「UTF-8」的格式保存的。
以上設置了文件的保存編碼格式,默認的打開方式(解碼方式)會跟保存編碼格式同樣。
2、設置新建其餘文件的默認編碼格式,即文件保存格式。
在第一項設置中,只是設置了經常使用文件類型的編碼格式。若是新建一個文件,沒有後綴名,也就是不指名文件類型,那麼MyEclipse沒法判斷該用何種編碼格式保存,就用操做系統默認文件保存編碼格式GBK進行保存。這個默認保存編碼格式,可用以下方法修改:
window-->preferences-->general-->workspace 在右側 Text file encoding ->Other 選擇UTF-8
3、單個文件查看編碼格式(也就是打開文件用的編碼格式)更改。
這個方法沒有更改文件的編碼格式,只是告訴MyEclipse用何種編碼格式進行解碼。
在要查看的文件上,如文件Test.java上右鍵-->Properties-->Resource在右側Text file encoding ->Other,能夠進行修改。
好比說,你在「一」裏面設置*.java文件的編碼格式爲「UTF-8」,那麼你打開後綴名爲java的文件,默認就會以「UTF-8」格式進行解碼。若是有人給了你一個編寫好的java文件,可是他是用GBK編碼保存的,那麼你如今打開的時候,會顯示亂碼。在這個文件上右鍵-->Properties-->Resource在右側Text file encoding ->Other ->GBK,就能夠正常顯示裏面的內容了。
4、單個工程workspace默認編碼設置。
在工程上右鍵-->Properties-->Resource在右側Text file encoding ->Other,能夠進行修改。
5、指定MyEclipse編寫文件時頁面內容數據編碼格式(其實就是參數的默認設置),如html,或者jsp網頁中提交表單前,用戶輸入的信息編碼格式,配置文件xml中的參數編碼格式等。
主要是通知瀏覽器或服務器,傳輸數據的編碼格式。告訴瀏覽器用何種編碼來解析html或者JSP文件。
window-->Preferences-->MyEclipse-->Files and Editors-->選擇子項-->Encoding
例如:選擇UTF-8,
新建jsp文件的時候,contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"就會自動生成,不用每次去手工更改了。
新建html文件的時候,http-equiv="Content-Type" content="text/html; charset=UTF-8"
新建xml文件的時候,
6、eclipse的控制檯顯示所使用的編碼是繼承了workspace設置的字符編碼格式(也就是上面「二」中設置的編碼格式)。
問題:
一、若是別人給了給的一個project,編碼格式爲GBK,我本身使用的編碼格式爲UTF-8,導入這個project後,顯示亂碼,須要進行哪些修改?
我想知道「必定必須修改」的地方。若是我上面的幾點依次所有更改,導入的用GBK編碼的project是能夠正常顯示的。可是更改之後,查看本身用UTF-8編碼的project的代碼又會出現中文亂碼了。
其實這個問題就是,如何讓兩個Project使用不一樣編碼(如UTF-8和GBK),而均可以正常查看,不出現亂碼。
二、打開編寫好的java代碼,按右鍵-->General-->Editors-->Test Editors-->Spelling-->Encoding這個究竟是幹什麼用的??? 這個和window-->preferences-->general-->General-->Editors-->Test Editors-->Spelling-->Encoding修改效果是同樣的,這個是全局修改。 這個設置默認繼承全局workspace編碼格式,也就是上面「二」中設置的編碼格式。