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

Java 處理特殊字元:中間點 (·) 顯示亂碼解決方案

     編輯:Java 相關知識

問題現象

JSP/HTML 頁面中直接寫入 · (·) 或 Java 字串常值 "·",編譯或瀏覽器顯示為 ? 或亂碼。

根本原因

  • 原始碼檔案編碼(如 UTF-8)與編譯器預期編碼(如 GBK)不一致。
  • JSP 未正確宣告 pageEncoding 與 contentType charset。
  • 瀏覽器解碼編碼與伺服器輸出編碼不符。

解決方案一:JSP 頁面完整編碼宣告(推薦)

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Special Char Test</title>
</head>
<body>
    <%-- 直接寫入特殊字元 -->
    中文 · English
    <%-- 或 Java 程式碼產生 -->
    <%
        String dot = "·"; // 原始碼需以 UTF-8 儲存
        out.print("Java 產生: " + dot);
    %>
</body>
</html>

解決方案二:Java 程式碼中以 Unicode 逃逸序列表示

不依賴原始碼檔案編碼,直接使用 \uXXXX:

String middleDot = "\u00B7"; // · (MIDDLE DOT)
String bullet = "\u2022";    // • (BULLET)
out.print(middleDot);

常用特殊字元 Unicode 碼位:

字元名稱UnicodeHTML 實體
·Middle DotU+00B7&middot;
•BulletU+2022&bull;
×Multiplication SignU+00D7&times;
÷Division SignU+00F7&divide;
℃Degree CelsiusU+2103℃

解決方案三:動態取得字元(原文做法)

// 假設已知字元在目標編碼中的碼點
char targetChar = (char) 0x00B7; // 或從資源檔讀取
String s = String.valueOf(targetChar);

編碼一致性檢查清單

  1. 原始碼檔案:IDE 設定為 UTF-8(或專案統一編碼)。
  2. Java 編譯器:javac -encoding UTF-8 或 Maven <encoding>UTF-8</encoding>。
  3. JSP:pageEncoding="UTF-8"、contentType="text/html; charset=UTF-8"。
  4. Servlet 輸出:response.setCharacterEncoding("UTF-8")、response.setContentType("text/html; charset=UTF-8")。
  5. 資料庫連線:JDBC URL 含 characterEncoding=utf8(MySQL)或 oracle.jdbc.defaultNChar=true(Oracle)。
  6. 前端 HTML:<meta charset="UTF-8">。

結語

特殊字元亂碼本質是編碼不一致。統一全鏈路採用 UTF-8,並善用 Unicode 逃逸序列 \uXXXX 寫死字元碼點,可徹底解決此類問題。現代專案強烈建議全端 UTF-8,避免 GBK/Big5 等legacy編碼。

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