<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    outputstream 輸出亂碼原因


    發現錯別字 2年前 提問
    回答
    1
    瀏覽
    2557
    請勿發布不友善或者負能量的內容。與人為善,比聰明更重要!
    回答數量: 1
    上官雨寶
    CISM-WSE 中級信息安全等級測評師

    使用OutputStream輸出中文的時候,如果編碼不設置就會產生亂碼,產生亂碼的原因有以下幾種:

    1. Tomcat服務器默認的編碼為ISO-8859-1,不支持中文,應當告訴瀏覽器和服務器,使用UTF-8編碼。

    2. 服務端,瀏覽器端2邊的編碼不一致,比如服務器用utf-8,瀏覽器用gb2312,也會產生亂碼。

    解決方法:

    public void outputChineseByOutputStream(HttpServletResponse response) throws IOException{

    String data = “解決”;

    OutputStream outputStream = response.getOutputStream();//獲取OutputStream輸出流

    response.setHeader(“content-type”, “text/html;charset=UTF-8”);//通過設置響應頭控制瀏覽器以UTF-8的編碼顯示數據,如果不加這句話,那么瀏覽器顯示的將是亂碼

    //getBytes()方法如果不帶參數,那么就會根據操作系統的語言環境來選擇轉換碼表,如果是中文操作系統,那么就使用GB2312的碼表

    byte[] dataByteArr = data.getBytes(“UTF-8”);//將字符轉換成字節數組,指定以UTF-8編碼進行轉換

    outputStream.write(dataByteArr);//使用OutputStream流向客戶端輸出字節數組

    }

    response.setHeader(“content-type”, “text/html;charset=UTF-8”) 通過設置響應頭控制瀏覽器以UTF-8的編碼顯示數據

    使用OutputStream流向客戶端瀏覽器輸出中文,以UTF-8的編碼進行輸出,此時就要控制客戶端瀏覽器以UTF-8的編碼打開,否則顯示的時候就會出現中文亂碼。

    回答所涉及的環境:聯想天逸510S、Windows 10。

    2年前 / 評論
    亚洲 欧美 自拍 唯美 另类