java中Base64字符串出現(xiàn)不合法字符的問題解決
1.base64編碼使用的合法字符類型如下:
- 大寫字母 A 到 Z
- 小寫字母 a 到 z
- 數(shù)字 0 到 9
- 加號(+)
- 斜杠(/)
- 等號(=)
其中,等號(=)通常用作 Base64 編碼的填充字符,用于補(bǔ)全最后一個編碼塊的長度,使其長度為 4 的倍數(shù)。在 Base64 編碼中,等號(=)最多出現(xiàn)兩個,分別用于補(bǔ)全最后一個編碼塊的 1 或 2 個字節(jié)
2.假如有下面這樣一個base64編碼的字符串
String bas = "/9j/4AAQSkZJRgABAgAAAQABA*^AD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofH"
其中出現(xiàn)了不符合base64編碼規(guī)則的字符。
可以使用 replaceAll(String regex,String replacement) 方法來去除不合法的字符。
public String replaceAll(String regex, String replacement) {
return Pattern.compile(regex).matcher(this).replaceAll(replacement);
}3.參數(shù)說明
regex:一個正則表達(dá)式,用于匹配需要替換的部分。replacement:一個字符串,用于替換匹配的部分。
該方法返回一個新的字符串,其中所有匹配正則表達(dá)式的部分都被替換為指定的字符串。
直接使用 bas來調(diào)用它
bas = bas.replaceAll("[^A-Za-z0-9+/=]", "");該正則表達(dá)式表示:匹配不在 A-Za-z0-9+/= 范圍內(nèi)的其他所有字符
這樣就將base64編碼的字符串中不合法的字符全部去除了??!
到此這篇關(guān)于java中Base64字符串出現(xiàn)不合法字符的問題解決的文章就介紹到這了,更多相關(guān)java Base64不合法字符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java微服務(wù)架構(gòu)中的關(guān)鍵技術(shù)和設(shè)計原則解讀
Java是一種面向?qū)ο蟮母呒壘幊陶Z言,具有跨平臺兼容性、自動內(nèi)存管理等特點(diǎn),它支持多線程、異常處理,并擁有豐富的標(biāo)準(zhǔn)庫和強(qiáng)大的社區(qū)生態(tài),微服務(wù)架構(gòu)是將應(yīng)用分解為多個小型服務(wù)的設(shè)計風(fēng)格2024-11-11
IDEA編譯報錯: Error:(2048,1024) java: 找不到符號的解決辦法
這篇文章主要介紹了IDEA編譯報錯: Error:(2048,1024) java: 找不到符號的解決辦法,提供了詳細(xì)的排查步驟和代碼示例,幫助開發(fā)者快速定位和解決該問題,需要的朋友可以參考下2025-05-05
SpringBoot集成Redisson實(shí)現(xiàn)消息隊列的示例代碼
本文介紹了如何在SpringBoot中通過集成Redisson來實(shí)現(xiàn)消息隊列的功能,包括RedisQueue、RedisQueueInit、RedisQueueListener、RedisQueueService等相關(guān)組件的實(shí)現(xiàn)和測試,感興趣的可以了解一下2024-10-10
Java開發(fā)SSM框架微信支付的實(shí)現(xiàn)
這篇文章主要介紹了Java開發(fā)SSM框架微信支付的實(shí)現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-10-10
Java多線程編程之使用Exchanger數(shù)據(jù)交換實(shí)例
這篇文章主要介紹了Java多線程編程之使用Exchanger數(shù)據(jù)交換實(shí)例,本文直接給出實(shí)例代碼,需要的朋友可以參考下2015-05-05

