Java Servlet輸出中文亂碼問(wèn)題解決方案
1.現(xiàn)象:字節(jié)流向?yàn)g覽器輸出中文,可能會(huì)亂碼(IE低版本)
private void byteMethod(HttpServletResponse response) throws IOException, UnsupportedEncodingException {
String date = "你好";
ServletOutputStream outputStream = response.getOutputStream();
outputStream.write(date.getBytes();
}
原因:服務(wù)器端和瀏覽器端的編碼格式不一致。
解決方法:服務(wù)器端和瀏覽器端的編碼格式保持一致
private void byteMethod(HttpServletResponse response) throws IOException, UnsupportedEncodingException {
String date = "你好";
ServletOutputStream outputStream = response.getOutputStream();
// 瀏覽器端的編碼
response.setHeader("Content-Type", "text/html;charset=utf-8");
// 服務(wù)器端的編碼
outputStream.write(date.getBytes("utf-8"));
}
或者簡(jiǎn)寫(xiě)如下
private void byteMethod(HttpServletResponse response) throws IOException, UnsupportedEncodingException {
String date = "你好";
ServletOutputStream outputStream = response.getOutputStream();
// 瀏覽器端的編碼
response.setContentType("text/html;charset=utf-8");
// 服務(wù)器端的編碼
outputStream.write(date.getBytes("utf-8"));
}
2.現(xiàn)象:字符流向?yàn)g覽器輸出中文出現(xiàn) ???亂碼
private void charMethod(HttpServletResponse response) throws IOException {
String date = "你好";
PrintWriter writer = response.getWriter();
writer.write(date);
}
原因:表示采用ISO-8859-1編碼形式,該編碼不支持中文
解決辦法:同樣使瀏覽器和服務(wù)器編碼保持一致
private void charMethod(HttpServletResponse response) throws IOException {
// 處理服務(wù)器編碼
response.setCharacterEncoding("utf-8");
// 處理瀏覽器編碼
response.setHeader("Content-Type", "text/html;charset=utf-8");
String date = "中國(guó)";
PrintWriter writer = response.getWriter();
writer.write(date);
}
注意!setCharacterEncoding()方法要在寫(xiě)入之前使用,否則無(wú)效?。?!
或者簡(jiǎn)寫(xiě)如下
private void charMethod(HttpServletResponse response) throws IOException {
response.setContentType("text/html;charset=GB18030");
String date = "中國(guó)";
PrintWriter writer = response.getWriter();
writer.write(date);
}
總結(jié):解決中文亂碼問(wèn)題使用方法 response.setContentType("text/html;charset=utf-8");可解決字符和字節(jié)的問(wèn)題。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用spring?security?BCryptPasswordEncoder接入系統(tǒng)
這篇文章主要介紹了使用spring?security?BCryptPasswordEncoder接入系統(tǒng)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
SSH框架網(wǎng)上商城項(xiàng)目第10戰(zhàn)之搭建商品類(lèi)基本模塊
這篇文章主要為大家詳細(xì)介紹了SSH框架網(wǎng)上商城項(xiàng)目第10戰(zhàn)之搭建商品類(lèi)基本模塊的相關(guān)資料,有一定的實(shí)用性,感興趣的小伙伴們可以參考一下2016-06-06
Java實(shí)現(xiàn)二叉查找樹(shù)的增刪查詳解
二叉查找樹(shù)(ADT)是一個(gè)具有對(duì)于樹(shù)種的某個(gè)節(jié)點(diǎn)X,它的左節(jié)點(diǎn)都比X小,它的右節(jié)點(diǎn)都比X大的二叉樹(shù)。本文將用Java實(shí)現(xiàn)二叉查找樹(shù)的增刪查,需要的可以參考一下2022-06-06
詳解Java的堆內(nèi)存與棧內(nèi)存的存儲(chǔ)機(jī)制
這篇文章主要介紹了Java的堆內(nèi)存與棧內(nèi)存的存儲(chǔ)機(jī)制,包括JVM的內(nèi)存優(yōu)化和GC等相關(guān)方面內(nèi)容,需要的朋友可以參考下2016-01-01
解讀RabbitMQ和kafka的相同點(diǎn)和不同點(diǎn)是什么
RabbitMQ和Kafka都是消息中間件,支持分布式系統(tǒng)、高可用性和可靠性,RabbitMQ使用隊(duì)列模型,適合復(fù)雜路由場(chǎng)景;Kafka使用主題-分區(qū)模型,適合大規(guī)模數(shù)據(jù)流處理,RabbitMQ在低延遲方面表現(xiàn)更好,Kafka在高吞吐量方面表現(xiàn)更好2024-12-12
SpringBoot整合ShardingSphere5.x實(shí)現(xiàn)數(shù)據(jù)加解密功能(最新推薦)
這篇文章主要介紹了SpringBoot整合ShardingSphere5.x實(shí)現(xiàn)數(shù)據(jù)加解密功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06
Java使用@Retryable注解實(shí)現(xiàn)HTTP請(qǐng)求重試
HTTP調(diào)用是Java應(yīng)用與外部API進(jìn)行交互時(shí)重要的訪問(wèn)方式之一,為了確保在遇到臨時(shí)性問(wèn)題時(shí)能自動(dòng)重試,我們可以設(shè)計(jì)一個(gè)靈活的重試機(jī)制,在Java中,我們可以通過(guò)注解來(lái)實(shí)現(xiàn)這一功能,文將介紹如何使用注解@Retryable來(lái)實(shí)現(xiàn)HTTP調(diào)用的重試機(jī)制,需要的朋友可以參考下2024-10-10
MyBatis-Plus插件機(jī)制及通用Service新功能
這篇文章主要介紹了MyBatis-Plus插件機(jī)制以及通用Service、新功能,本文通過(guò)實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07
詳解springboot設(shè)置默認(rèn)參數(shù)Springboot.setDefaultProperties(map)不生效解決
這篇文章主要介紹了詳解springboot設(shè)置默認(rèn)參數(shù)Springboot.setDefaultProperties(map)不生效解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07

