真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java修改代碼格式 java把代碼變成標(biāo)準(zhǔn)格式

Java 修改編碼格式的幾種方式

主要分response的字節(jié)字符輸出流和request接受中文參數(shù)doGet(),doPost()的設(shè)置四種.以及從服務(wù)器下載文件到瀏覽器的編碼問題.

專注于為中小企業(yè)提供做網(wǎng)站、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)昭陽免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

都是我學(xué)習(xí)java時(shí)總結(jié)的,希望能幫到你.

response的字節(jié)輸出流:

// 設(shè)置瀏覽器默認(rèn)打開的時(shí)候采用的字符集編碼

response.setHeader("Content-Type", "text/html;charset=UTF-8");

// 設(shè)置中文轉(zhuǎn)成字節(jié)數(shù)組的時(shí)候取出的編碼

response.getOutputStream().write("如果不設(shè)置編碼,這里就是亂碼".getBytes("UTF-8"));

response的字符輸出流:

//設(shè)置瀏覽器默認(rèn)打開的時(shí)候采用的字符集編碼,response的字符流的緩沖區(qū)的編碼.

response.setContentType("text/html;charset=UTF-8");

response.getWriter().println("中文");

request的doGet()編碼解決:

String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");

System.out.println("GET方式:"+name);

request的doPost()編碼解決:

request.setCharacterEncoding("UTF-8");

String name = request.getParameter("name");

System.out.println("POST方式:"+name);

下載文件時(shí)瀏覽器編碼問題:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// 1.接收參數(shù)

String filename = new String(request.getParameter("filename").getBytes("ISO-8859-1"),"UTF-8");

System.out.println(filename);

// 2.完成文件下載:

// 2.1設(shè)置Content-Type頭(獲取文件的mime類型)

String type = this.getServletContext().getMimeType(filename);

//設(shè)置文件的mime類型

response.setHeader("Content-Type", type);

// 2.3web項(xiàng)目文件的絕對(duì)路徑

String realPath = this.getServletContext().getRealPath("/download/"+filename);

// 獲得瀏覽器的類型處理中文文件的亂碼問題.(User-Agent:服務(wù)器收到客戶端版本之類的一些信息)

String agent = request.getHeader("User-Agent");

System.out.println(agent);

if(agent.contains("Firefox")){

filename = base64EncodeFileName(filename);

}else{

//IE谷歌編碼

filename = URLEncoder.encode(filename,"UTF-8");

}

// 2.2設(shè)置Content-Disposition頭(固定寫法,讓瀏覽器必須下載,不能直接打開)

response.setHeader("Content-Disposition", "attachment;filename="+filename);

//獲得文件

InputStream is = new FileInputStream(realPath);

// 獲得response指定的方法獲取輸出流:如果用其他流是直接拷貝而不是下載

OutputStream os = response.getOutputStream();

int len = 0;

byte[] b = new byte[1024];

while((len = is.read(b))!= -1){

os.write(b, 0, len);

}

//響應(yīng)流可以不關(guān),在服務(wù)器做出相應(yīng)后服務(wù)器會(huì)自動(dòng)把response獲得的流關(guān)閉

is.close();

}

//火狐

public static String base64EncodeFileName(String fileName) {

BASE64Encoder base64Encoder = new BASE64Encoder();

try {

return "=?UTF-8?B?"

+ new String(base64Encoder.encode(fileName

.getBytes("UTF-8"))) + "?=";

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

throw new RuntimeException(e);

}

}

請(qǐng)問java如何改變字符串的編碼方式

byte[] b=string.getBytes("GB2312");//使用GB2312編碼方式對(duì)字符串string進(jìn)行編碼

//這時(shí)要想將字節(jié)數(shù)組b的內(nèi)容正確解碼只能使用GB2312的編碼方式進(jìn)行解碼,即

String str=new String(b,"GB2312");//這里若使用UTF-8編碼方式來進(jìn)行解碼就會(huì)亂碼

//將eclipse默認(rèn)的編碼方式改為UTF-8,只是用該編碼方式對(duì).java源文件進(jìn)行編碼保存

//這個(gè)對(duì)new String(string.getBytes("GB2312"),"UTF-8")沒啥影響的

//因?yàn)閺膉ava源文件獲取字符串string時(shí),已經(jīng)通過UTF-8編碼方式進(jìn)行解碼了

//而string.getBytes("GB2312")是使用指定的編碼方式對(duì)字符串string進(jìn)行從新編碼

//這兩者之間沒啥關(guān)系的

java代碼ansi_x3.4-1968改為utf

您可以使用Java提供的String類來進(jìn)行編碼轉(zhuǎn)換。具體操作可以參考以下代碼:

String str = "ansix341968";

byte[] bytes = str.getBytes("ISO-8859-1"); // 將字符串編碼為ISO-8859-1

String utfStr = new String(bytes, "UTF-8"); // 將ISO-8859-1編碼的字節(jié)數(shù)組轉(zhuǎn)換為UTF-8編碼的字符串

這樣,您就可以將“ansix341968”從ISO-8859-1編碼轉(zhuǎn)換為UTF-8編碼了。


網(wǎng)站欄目:java修改代碼格式 java把代碼變成標(biāo)準(zhǔn)格式
文章出自:http://weahome.cn/article/ddsojce.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部