自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

怎樣解決Java/J2EE中文問(wèn)題

開(kāi)發(fā) 后端 開(kāi)發(fā)工具
大部分程序員在編程中都遇到過(guò)Java中文問(wèn)題,但是只要你知道了Java系統(tǒng)的中文問(wèn)題原理,我們就可以對(duì)中文問(wèn)題說(shuō)拜拜。
大部分程序員在編程中都遇到過(guò)Java中文問(wèn)題,但是只要你知道了Java系統(tǒng)的中文問(wèn)題原理,我們就可以對(duì)中文問(wèn)題說(shuō)拜拜。

怎樣解決Java/J2EE中文問(wèn)題

 

最古老的解決方案是使用String的字節(jié)碼轉(zhuǎn)換,這種方案問(wèn)題是不方便,我們需要破壞對(duì)象封裝性,進(jìn)行字節(jié)碼轉(zhuǎn)換。

 

還有一種方式是對(duì)J2EE容器進(jìn)行編碼設(shè)置,如果J2EE應(yīng)用系統(tǒng)脫離該容器,則會(huì)發(fā)生亂碼,而且指定容器配置不符合J2EE應(yīng)用和容器分離的原則。

 

在Java內(nèi)部運(yùn)算中,涉及到的所有字符串都會(huì)被轉(zhuǎn)化為UTF-8編碼來(lái)進(jìn)行運(yùn)算。那么,在被Java轉(zhuǎn)化之前,字符串是什么樣的字符集? Java總是根據(jù)操作系統(tǒng)的默認(rèn)編碼字符集來(lái)決定字符串的初始編碼,而且Java系統(tǒng)的輸入和輸出的都是采取操作系統(tǒng)的默認(rèn)編碼。

 

因此,如果能統(tǒng)一Java系統(tǒng)的輸入、輸出和操作系統(tǒng)3者的編碼字符集合,將能夠使Java系統(tǒng)正確處理和顯示漢字。這是處理Java系統(tǒng)漢字的一個(gè)原則,但是在實(shí)際項(xiàng)目中,能夠正確抓住和控制住Java系統(tǒng)的輸入和輸出部分是比較難的。J2EE中,由于涉及到外部瀏覽器和數(shù)據(jù)庫(kù)等,所以中文問(wèn)題亂碼顯得非常突出。

 

J2EE應(yīng)用程序是運(yùn)行在J2EE容器中。在這個(gè)系統(tǒng)中,輸入途徑有很多種:一種是通過(guò)頁(yè)面表單打包成請(qǐng)求(request)發(fā)往服務(wù)器的;第二種是通過(guò)數(shù)據(jù)庫(kù)讀入;還有第3種輸入比較復(fù)雜,JSP在***次運(yùn)行時(shí)總是被編譯成Servlet,JSP中常常包含中文字符,那么編譯使用javac時(shí),Java將根據(jù)默認(rèn)的操作系統(tǒng)編碼作為初始編碼。除非特別指定,如在Jbuilder/eclipse中可以指定默認(rèn)的字符集。

 

輸出途徑也有幾種:***種是JSP頁(yè)面的輸出。由于JSP頁(yè)面已經(jīng)被編譯成Servlet,那么在輸出時(shí),也將根據(jù)操作系統(tǒng)的默認(rèn)編碼來(lái)選擇輸出編碼,除非指定輸出編碼方式;還有輸出途徑是數(shù)據(jù)庫(kù),將字符串輸出到數(shù)據(jù)庫(kù)。

 

由此看來(lái),一個(gè)J2EE系統(tǒng)的輸入輸出是非常復(fù)雜,而且是動(dòng)態(tài)變化的,而Java是跨平臺(tái)運(yùn)行的,在實(shí)際編譯和運(yùn)行中,都可能涉及到不同的操作系統(tǒng),如果任由Java自由根據(jù)操作系統(tǒng)來(lái)決定輸入輸出的編碼字符集,這將不可控制地出現(xiàn)亂碼。

 

Java是一門(mén)跨平臺(tái)性的語(yǔ)言,使得字符集問(wèn)題必須由具體系統(tǒng)來(lái)統(tǒng)一解決,所以在一個(gè)Java應(yīng)用系統(tǒng)中,解決中文亂碼的根本辦法是明確指定整個(gè)應(yīng)用系統(tǒng)統(tǒng)一字符集。

責(zé)任編輯:王雪燕 來(lái)源: 開(kāi)源中文社區(qū)
相關(guān)推薦

2009-06-22 17:10:51

J2EE中文問(wèn)題Solaris

2009-06-23 16:48:26

J2EE常見(jiàn)問(wèn)題J2EE平臺(tái)

2010-11-09 17:13:17

SQL Server中

2009-06-22 17:05:41

Java EEJava企業(yè)應(yīng)用

2009-06-23 08:06:46

J2EE體系架構(gòu)J2EE模型J2EE設(shè)計(jì)模式

2009-06-10 14:10:23

J2EE學(xué)習(xí)J2EE是什么

2009-06-11 17:06:11

J2EE歷史Java EE概述

2009-06-10 13:37:06

J2EE可伸縮性J2EE靈活性J2EE維護(hù)

2009-06-16 11:37:00

J2EE系統(tǒng)應(yīng)用性能

2019-01-08 16:26:43

Java EEJ2EEJakarta EE

2009-06-22 16:21:02

J2EE線程

2009-06-18 16:13:14

J2EE開(kāi)發(fā)

2009-06-18 15:54:57

J2EE下使用JNDI

2009-06-23 08:12:48

J2EE調(diào)用存儲(chǔ)過(guò)程

2009-06-22 17:34:40

J2EE架構(gòu)

2009-06-22 17:20:33

J2EE框架

2009-06-23 16:50:24

2009-06-23 16:52:55

J2EE縮寫(xiě)名詞

2009-06-25 13:22:00

J2EE常用Jar包

2009-06-10 13:30:32

J2EE四層模型客戶層Web層
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)