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

Java 判斷字串是否僅含 GBK 編碼字符

     編輯:Java 程式設計入門

核心邏輯

利用「編碼後再解碼若內容不變,則原字串完全屬於該編碼集」的特性:

public static boolean isGBK(String s) throws UnsupportedEncodingException {
    return s.equals(new String(s.getBytes("GBK"), "GBK"));
}

原理解析

  • s.getBytes("GBK"):若字串含非 GBK 字符(如生僻字、Emoji),會以 ? 或替換字節編碼
  • new String(bytes, "GBK"):將位元組按 GBK 解碼回字串
  • 若原字串含不可編碼字符,解碼後內容會不同(出現 ?),equals 回傳 false

適用場景

  • 檢查使用者輸入是否可安全存入 GBK 資料庫欄位
  • 避免「插入資料庫後變問號」的資料損壞
  • 同理可擴充至 Big5、UTF-8 等編碼檢查

效能提示

涉及兩次編碼/解碼,長字串建議改用 CharsetEncoder.canEncode() 或正則 [\u0000-\uFFFF] 篩選,避免建立大量臨時物件。

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