首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Web 應用換行顯示問題:資料庫 \n 轉換為 HTML <br> 的 Java/JSP 解決方案

     編輯:Oracle 資料庫基礎

問題成因:換行字元編碼差異

  • 瀏覽器輸入:使用者按 Enter 產生 \n (LF, ASCII 10) 或 \r\n (CRLF)。
  • 資料庫儲存:原樣保存 \n。
  • HTML 輸出:瀏覽器忽略 \n,需 <br> 或 <p> 標籤換行。

直接輸出資料庫欄位導致所有內容擠在單行。

JSP 轉換函數:turn()

<%!
  public String turn(String str) {
    if (str == null) return "";
    // 處理換行符 \n (Unix) 或 \r\n (Windows)
    str = str.replaceAll("\\r\\n|\\r|\\n", "<br>");
    // 選擇性:保留空格顯示 (將空格轉為 &nbsp;)
    str = str.replaceAll(" ", "&nbsp;");
    return str;
  }
%>

使用方式

<%= turn(rs.getString("content")) %>

進階考量

  • XSS 防護:若內容來自使用者輸入,輸出前必須進行 HTML 編碼(<→&lt; 等),再轉換換行,避免腳本注入。
  • 儲存端轉換:亦可在寫入資料庫前轉換為 <br>,但會增加儲存體積且失去原始文本彈性,建議輸出端處理。
  • CSS 替代方案:現代瀏覽器支援 white-space: pre-wrap;,直接保留原始換行,無需轉換:
<div style="white-space: pre-wrap;"><%= rs.getString("content") %></div>

此方案更簡潔、保留原始格式,為現代 Web 應用首選。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved