首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> JSP 程式設計 >> 關於JSP

JSP 通用字符轉 Unicode 工具類:ToUnicode 完整實現與應用

     編輯:關於JSP

前端頁面若需顯示特殊字符或避免編碼問題,常將字符串轉為 Unicode 轉義序列(&#xXXXX;)。本文提供可直接部署的 ToUnicode 工具類與 JSP 調用範例。

工具類完整代碼

package com.edgewww.util;

import java.io.UnsupportedEncodingException;

public class ToUnicode {
  /**
   * 將字符串轉為 Unicode HTML 實體(&#xXXXX;)
   * @param strText 待轉換字符串
   * @param code    原字符串編碼(如 GBK、UTF-8)
   * @return 轉義後字符串
   */
  public String toUnicode(String strText, String code) throws UnsupportedEncodingException {
    // 先按 ISO-8859-1 讀取位元組,再按指定編碼重組為字符
    strText = new String(strText.getBytes("8859_1"), code);

    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < strText.length(); i++) {
      char c = strText.charAt(i);
      int codePoint = (int) c;
      if (codePoint > 127) { // 非 ASCII 轉義
        sb.append("&#x").append(Integer.toHexString(codePoint)).append(";");
      } else {
        sb.append(c);
      }
    }
    return sb.toString();
  }
}

JSP 應用範例

<%@ page contentType="text/html;charset=Big5" %>
<jsp:useBean id="g2u" scope="session" class="com.edgewww.util.ToUnicode" />
<%
  String lang = "這是簡體中文";
%>
原文:<%= lang %><br/>
Unicode:<%= g2u.toUnicode(lang, "GBK") %>

輸出示例

原文:這是簡體中文
Unicode:這是簡體中文

注意事項與優化

  • 編碼雙重轉換:strText.getBytes("8859_1") 假設 JSP 頁面編碼為 ISO-8859-1;若頁面已為 UTF-8,直接用 strText.getBytes("UTF-8") 或省略轉碼步驟。
  • 補充碼點:charAt 僅處理 BMP 字符(U+0000~U+FFFF),Emoji 等輔助平面字符需用 codePointAt + Character.toChars。
  • 效能:頻繁調用建議緩存 ToUnicode 實例(如 application 作用域),或改用 Apache Commons Text StringEscapeUtils.escapeEcmaScript()。
  • 現代替代:前端模板引擎(Thymeleaf/Freemarker)內建 ${#strings.escapeXml()}、${#strings.escapeJava()},無需手工轉碼。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved