溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

java中文亂碼如何轉(zhuǎn)換

發(fā)布時(shí)間:2020-10-22 12:46:16 來源:億速云 閱讀:218 作者:小新 欄目:編程語言

小編給大家分享一下java中文亂碼如何轉(zhuǎn)換,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

java中文亂碼的轉(zhuǎn)換方法:首先用編輯器編寫java源文件;然后使用【javac.exe】編譯java文件,并使用JDK將編譯好的且保存在內(nèi)存中信息寫入class文件中;最后運(yùn)行編譯類。

java中文亂碼的轉(zhuǎn)換方法:

使用編碼轉(zhuǎn)換

java編碼轉(zhuǎn)換過程

我們總是用一個(gè)java類文件和用戶進(jìn)行最直接的交互(輸入、輸出),這些交互內(nèi)容包含的文字可能會包含中文。無論這些java類是與數(shù)據(jù)庫交互,還是與前端頁面交互,他們的生命周期總是這樣的:

1、程序員在操作系統(tǒng)上通過編輯器編寫程序代碼并且以.java的格式保存操作系統(tǒng)中,這些文件我們稱之為源文件。

2、通過JDK中的javac.exe編譯這些源文件形成.class類。

3、直接運(yùn)行這些類或者部署在WEB容器中運(yùn)行,得到輸出結(jié)果。

這些過程是從宏觀上面來觀察的,了解這個(gè)肯定是不行的,我們需要真正來了解java是如何來編碼和被解碼的:

第一步:當(dāng)我們用編輯器編寫java源文件,程序文件在保存時(shí)會采用操作系統(tǒng)默認(rèn)的編碼格式(一般我們中文的操作系統(tǒng)采用的是GBK編碼格式)形成一個(gè).java文件。java源文件是采用操作系統(tǒng)默認(rèn)支持的file.encoding編碼格式保存的。下面代碼可以查看系統(tǒng)的file.encoding參數(shù)值。

System.out.println(System.getProperty("file.encoding"));

第二步:當(dāng)我們使用javac.exe編譯我們的java文件時(shí),JDK首先會確認(rèn)它的編譯參數(shù)encoding來確定源代碼字符集,如果我們不指定該編譯參數(shù),JDK首先會獲取操作系統(tǒng)默認(rèn)的file.encoding參數(shù),然后JDK就會把我們編寫的java源程序從file.encoding編碼格式轉(zhuǎn)化為JAVA內(nèi)部默認(rèn)的UNICODE格式放入內(nèi)存中。

第三步:JDK將上面編譯好的且保存在內(nèi)存中信息寫入class文件中,形成.class文件。此時(shí).class文件是Unicode編碼的,也就是說我們常見的.class文件中的內(nèi)容無論是中文字符還是英文字符,他們都已經(jīng)轉(zhuǎn)換為Unicode編碼格式了。

在這一步中對對JSP源文件的處理方式有點(diǎn)兒不同:WEB容器調(diào)用JSP編譯器,JSP編譯器首先會查看JSP文件是否設(shè)置了文件編碼格式,如果沒有設(shè)置則JSP編譯器會調(diào)用調(diào)用JDK采用默認(rèn)的編碼方式將JSP文件轉(zhuǎn)化為臨時(shí)的servlet類,然后再編譯為.class文件并保持到臨時(shí)文件夾中。

第四步:運(yùn)行編譯的類:在這里會存在一下幾種情況

1、直接在console上運(yùn)行。

2、JSP/Servlet類。

3、java類與數(shù)據(jù)庫之間。

這三種情況每種情況的方式都會不同

看完了這篇文章,相信你對java中文亂碼如何轉(zhuǎn)換有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI