国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Base64:含中文參數(shù)轉(zhuǎn)碼,對(duì)方接受參數(shù)解碼后,中文信息亂碼的解決方案

這篇具有很好參考價(jià)值的文章主要介紹了Base64:含中文參數(shù)轉(zhuǎn)碼,對(duì)方接受參數(shù)解碼后,中文信息亂碼的解決方案。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


前言

在用Postman調(diào)接口給對(duì)方發(fā)參數(shù)的時(shí)候,對(duì)方反應(yīng)含中文參數(shù)的字段信息部分亂碼(即中文亂碼,數(shù)字等正常)。本文介紹了如何解決這個(gè)問題。


一、Base64是什么?

以下部分內(nèi)容來(lái)自:

Base64用法參考:jdk1.8——Base64

Base64內(nèi)容介紹: 淺談Base64編碼規(guī)則
Base64是網(wǎng)絡(luò)上最常見的用于傳輸8Bit字節(jié)代碼的編碼方式之一,在了解Base64編碼之前,先了解幾個(gè)基本概念:位、字節(jié)。

位:"位(bit)"是計(jì)算機(jī)中最小的數(shù)據(jù)單位。每一位的狀態(tài)只能是0或1;

字節(jié):8個(gè)二進(jìn)制位構(gòu)成1個(gè)"字節(jié)(Byte)",字節(jié)是存儲(chǔ)空間的基本計(jì)量單位。1個(gè)字節(jié)可以儲(chǔ)存1個(gè)英文字母,2個(gè)字節(jié)可以存儲(chǔ)1個(gè)漢字;

因?yàn)橛行┚W(wǎng)絡(luò)傳送渠道并不支持所有的字節(jié),例如傳統(tǒng)的郵件只支持可見字符的傳送,像ASCII碼的控制字符就不能通過(guò)郵件傳送。這樣就受到了很大的限制,比如圖片二進(jìn)制流的每個(gè)字節(jié)不可能全部是可見字符,所以就傳送不了。最好的方法就是在不改變傳統(tǒng)協(xié)議的情況下,開辟一種新的方案來(lái)支持二進(jìn)制文件的傳送。把不可見字符用可見字符來(lái)表示。而Base64就是一種基于64個(gè)可見字符來(lái)表示二進(jìn)制數(shù)據(jù)的表示方法。

擴(kuò)展:不可見字符其實(shí)并不是不顯示,只是這些字符在屏幕上顯示不出來(lái),比如:換行符、回車、退格…字符。

二、問題解決

中文亂碼的根本問題還是在于編碼規(guī)則不同,同一信息通過(guò)不同編碼規(guī)則轉(zhuǎn)換時(shí)就可能會(huì)出現(xiàn)亂碼。尤其是中文,亂碼的可能性比英文和數(shù)字大的多。

Base64在轉(zhuǎn)碼的時(shí)候,是對(duì)字節(jié)數(shù)組(byte [])進(jìn)行轉(zhuǎn)碼,常見方法如圖所示
Base64:含中文參數(shù)轉(zhuǎn)碼,對(duì)方接受參數(shù)解碼后,中文信息亂碼的解決方案

而我們?cè)?strong>SpringBoot中,傳參設(shè)置流程一般如下:
(1)先創(chuàng)建model對(duì)象,利用set() 方法填寫相關(guān)信息
(2)再用JSON.toJSONString() 方法將model 對(duì)象轉(zhuǎn)為String 類型
(3)最后利用String.getBytes() 方法轉(zhuǎn)成字節(jié)數(shù)組,再傳入Base64加密方法中

在這里,為了解決中文亂碼問題,我在轉(zhuǎn)成字節(jié)數(shù)組的時(shí)候設(shè)置編碼規(guī)則為UTF-8,而不是默認(rèn)編碼規(guī)則,即可解決。

具體代碼如下:

String params=JSON.toJSONString(model);
String sendContent=Base64Util.encode(params.getBytes("UTF-8"));

當(dāng)然,這里是強(qiáng)制轉(zhuǎn)換為UTF-8編碼,具體編碼規(guī)則可以按照自己的需求設(shè)定。


總結(jié)

本文介紹了如何在Base64轉(zhuǎn)碼前,在生成字節(jié)數(shù)組的時(shí)候進(jìn)行編碼規(guī)則的設(shè)定,以解決亂碼問題。
希望對(duì)大家有用!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-440770.html

到了這里,關(guān)于Base64:含中文參數(shù)轉(zhuǎn)碼,對(duì)方接受參數(shù)解碼后,中文信息亂碼的解決方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • opensl學(xué)習(xí)——base16編碼解碼、base64編碼解碼、ASCII碼表、擴(kuò)展ASCII碼

    opensl學(xué)習(xí)——base16編碼解碼、base64編碼解碼、ASCII碼表、擴(kuò)展ASCII碼

    ASCII(American Standard Code for Information Interchange,美國(guó)信息互換標(biāo)準(zhǔn)代碼)是一套基于拉丁字母的字符編碼,共收錄了 128 個(gè)字符,用一個(gè)字節(jié)就可以存儲(chǔ),它等同于國(guó)際標(biāo)準(zhǔn) ISO/IEC 646。 ASCII 編碼于 1967 年第一次發(fā)布,最后一次更新是在 1986 年,迄今為止共收錄了 128 個(gè)字符,包

    2024年02月07日
    瀏覽(43)
  • Python中的Base64編碼和解碼

    Python3中Base64編碼和解碼,使用的是base64模塊中的b64encode 和 b64decode方法,關(guān)于怎么使用,首先查看源碼中的說(shuō)明: b64encode : Encode the bytes-like object s using Base64 and return a bytes object b64decode : Decode the Base64 encoded bytes-like object or ASCII string s… The result is returned as a bytes object. 要點(diǎn)

    2024年02月13日
    瀏覽(20)
  • Java - 將base64編碼解碼成圖片

    Java - 將base64編碼解碼成圖片

    為了方便測(cè)試,我們可以使用一個(gè)圖片編碼網(wǎng)站,將圖片進(jìn)行base64編碼 解密的代碼如下 因?yàn)閳D片的Base64字符串非常大,動(dòng)輒幾百K,所以不能直接使用 String base64 = \\\"${該圖片的base64串}\\\" 進(jìn)行測(cè)試,否則編譯器會(huì)報(bào)錯(cuò) Java \\\"constant string too long\\\" compile error\\\" 。這個(gè)錯(cuò)誤的出現(xiàn),是因

    2023年04月09日
    瀏覽(27)
  • openssl研發(fā)之base64編解碼實(shí)例

    openssl研發(fā)之base64編解碼實(shí)例

    Base64編碼是一種將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成ASCII字符的編碼方式。它主要用于在文本協(xié)議中傳輸二進(jìn)制數(shù)據(jù),例如電子郵件的附件、XML文檔、JSON數(shù)據(jù)等。 Base64編碼的特點(diǎn)如下: 字符集: Base64編碼使用64個(gè)字符來(lái)表示二進(jìn)制數(shù)據(jù),通常使用字母(A-Z、a-z)、數(shù)字(0-9)和兩個(gè)特殊字

    2024年02月05日
    瀏覽(16)
  • C/C++實(shí)現(xiàn)編解碼Base64

    Base64是網(wǎng)絡(luò)上最常見的用于傳輸8Bit字節(jié)碼的編碼方式之一,Base64就是一種基于64個(gè)可打印字符來(lái)表示二進(jìn)制數(shù)據(jù)的方法 由于二進(jìn)制的一些字符在網(wǎng)絡(luò)協(xié)議中屬于控制字符,不能直接傳送,因此需要用Base64編碼之后傳輸,編碼之后傳輸?shù)氖且恍┖芷胀ǖ腁SCII字符。 Base64常用于郵

    2024年02月12日
    瀏覽(29)
  • 前端Base64 編碼和解碼的使用方法

    使用 Base64 類從 ‘js-base64’ 庫(kù)進(jìn)行 Base64 編碼和解碼 vue: 使用 npm 或 yarn 包管理器來(lái)安裝‘js-base64’ 庫(kù) 原生: 通過(guò) vue: 導(dǎo)入 Base64 類: 或者: vue: Base64 編碼的使用示例: Base64 解碼的使用示例: 或者,導(dǎo)入 encode 和 decode 函數(shù): Base64 編碼的使用示例: Base64 解碼的使用示例

    2024年02月07日
    瀏覽(26)
  • php的Url 安全的base64編碼解碼類

    2024年02月04日
    瀏覽(23)
  • base64與BytesIO圖片進(jìn)行編碼、解碼;api調(diào)用

    base64與BytesIO圖片進(jìn)行編碼、解碼;api調(diào)用

    io.BytesIO 和 Base64 編碼都是用于在內(nèi)存中處理二進(jìn)制數(shù)據(jù)的方法,但它們的目的和使用場(chǎng)景有所不同。 1) io.BytesIO io.BytesIO 是 Python io 庫(kù)中的一個(gè)類,它提供了一個(gè)在內(nèi)存中處理二進(jìn)制數(shù)據(jù)的接口,模擬了一個(gè)文件對(duì)象。它允許你像操作文件一樣操作內(nèi)存中的二進(jìn)制數(shù)據(jù),這對(duì)

    2024年01月24日
    瀏覽(29)
  • 超級(jí)好用的C++實(shí)用庫(kù)之Base64編解碼

    概述 ????????Base64是一種編碼方式,用于將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為可打印的ASCII字符。這種編碼方式常用于在HTTP協(xié)議等應(yīng)用中傳輸二進(jìn)制數(shù)據(jù),比如:圖片、音頻、視頻等。 ????????Base64編碼的原理是:將每3個(gè)字節(jié)(24位)的二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為4個(gè)ASCII字符(每個(gè)字符6位)

    2024年04月25日
    瀏覽(51)
  • Linux系統(tǒng)下使用命令行進(jìn)行Base64編碼和解碼

    大家知道,編碼是將數(shù)據(jù)轉(zhuǎn)換為有效傳輸或存儲(chǔ)所需格式的過(guò)程。相反,解碼是將編碼數(shù)據(jù)轉(zhuǎn)換回其原始格式的過(guò)程。今天在這里向大家介紹一下 Base64 編碼和解碼,以便大家理解與學(xué)習(xí)。 Base64 是將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為 ASCII 的編碼方式之一。通常,當(dāng)二進(jìn)制數(shù)據(jù)傳輸?shù)綗o(wú)法正

    2024年02月11日
    瀏覽(39)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包