java中Base64字符串出現(xiàn)不合法字符的問題解決
1.base64編碼使用的合法字符類型如下:
- 大寫字母 A 到 Z
- 小寫字母 a 到 z
- 數(shù)字 0 到 9
- 加號(hào)(+)
- 斜杠(/)
- 等號(hào)(=)
其中,等號(hào)(=)通常用作 Base64 編碼的填充字符,用于補(bǔ)全最后一個(gè)編碼塊的長度,使其長度為 4 的倍數(shù)。在 Base64 編碼中,等號(hào)(=)最多出現(xiàn)兩個(gè),分別用于補(bǔ)全最后一個(gè)編碼塊的 1 或 2 個(gè)字節(jié)
2.假如有下面這樣一個(gè)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
:一個(gè)正則表達(dá)式,用于匹配需要替換的部分。replacement
:一個(gè)字符串,用于替換匹配的部分。
該方法返回一個(gè)新的字符串,其中所有匹配正則表達(dá)式的部分都被替換為指定的字符串。
直接使用 bas來調(diào)用它
bas = bas.replaceAll("[^A-Za-z0-9+/=]", "");
該正則表達(dá)式表示:匹配不在 A-Za-z0-9+/= 范圍內(nèi)的其他所有字符
這樣就將base64編碼的字符串中不合法的字符全部去除了?。?/p>
到此這篇關(guān)于java中Base64字符串出現(xiàn)不合法字符的問題解決的文章就介紹到這了,更多相關(guān)java Base64不合法字符內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java編程數(shù)組中最大子矩陣簡便解法實(shí)現(xiàn)代碼
這篇文章主要介紹了Java編程數(shù)組中最大子矩陣簡便解法實(shí)現(xiàn)代碼,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01SpringBoot結(jié)合Redis實(shí)現(xiàn)會(huì)話管理功能
在Web應(yīng)用程序中,會(huì)話管理是一項(xiàng)重要的任務(wù),它涉及跟蹤用戶的身份驗(yàn)證狀態(tài)和其他相關(guān)信息,以確保用戶在與應(yīng)用程序交互時(shí)的連續(xù)性和安全性,在本文中,我們將探討如何使用Spring Boot和Redis實(shí)現(xiàn)高效的會(huì)話管理2023-06-06Log4j關(guān)閉Spring和Hibernate日志打印方式
這篇文章主要介紹了Log4j關(guān)閉Spring和Hibernate日志打印方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12Java SSM框架(Spring+SpringMVC+MyBatis)搭建過程
最近一段時(shí)間搭建了ssm環(huán)境,并測(cè)試了幾個(gè)小項(xiàng)目,下面小編通過圖文并茂的形式給大家分享Java SSM框架(Spring+SpringMVC+MyBatis)搭建過程,需要的朋友參考下吧2017-11-11java逗號(hào)分隔String字符串及數(shù)組、集合相互轉(zhuǎn)換
我們?cè)谌粘i_發(fā)時(shí)會(huì)經(jīng)常遇到將一個(gè)字符串按照逗號(hào)進(jìn)行分割,這篇文章主要給大家介紹了關(guān)于java逗號(hào)分隔String字符串及數(shù)組、集合相互轉(zhuǎn)換的相關(guān)資料,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下2024-02-02