当前位置: 首页 > 后端技术 > Java

base64传参时+号变成空格的问题

时间:2023-04-01 23:10:30 Java

闂鍙戠敓鍦ㄤ笂鍛ㄣ€傜湅鍒颁竴涓€佸ご鑱旂郴鎴戜滑鍚屼簨璋冭瘯鎺ュ彛銆傛垜涓嶇煡閬撻棶棰樺嚭鍦ㄥ摢閲屻€備袱浜哄潗鍦ㄤ竴璧峰皢杩戜竴涓皬鏃躲€傝繖鍙兘鐪嬭捣鏉ユ湁鐐瑰鏉傘€傜獊鐒讹紝鎴戝摜鍙戝嚭涓€澹板懟鍚燂紝鈥滄垜寮曠敤閲岀殑+鍙凤紝浣犳€庝箞鎶婂畠鍙樻垚绌烘牸浜嗭紒鈥濓紝澹伴煶寰堝ぇ锛屾垜鍚緱寰堟竻妤氾紝寰堝揩锛屾垜澶ф鏄庣櫧浜嗕粬浠殑闂銆傛垜鐚滀粬浠亣鍒扮殑闂澶ф鏄繖鏍风殑锛氬湪鎴戜滑鐨勬帴鍙e崗璁腑锛岃姹傛暟鎹細鍏堣繘琛屼竴娆ase64缂栫爜锛岀劧鍚庢斁鍏ata鍙傛暟涓€傞偅涔堟湁浜涙暟鎹粡杩嘼ase64缂栫爜鍚庝細鏈?锛屾瘮濡倇"notes":"code"}base64缂栫爜灏辨槸eyJub3RlcyI6IuS7o+eggSJ9Cg==銆傜劧鍚庣洿鎺ユ嫾鍒癲ata鍙傛暟涓婏紝鍗砫ata=eyJub3RlcyI6IuS7o+eggSJ9Cg==锛岀粍缁囨垚http璇锋眰銆傚鏋滃啓鎴愮瓑浠风殑curl锛屽氨鏄繖鏍凤細$curlhttp://localhost:8080/send-d'data=eyJub3RlcyI6IuS7o+eggSJ9Cg=='澶嶅埗浠g爜锛屽啓涓祴璇曠晫闈㈣皟璇曚竴涓嬶紝濡備笅锛氳繖鏄粬浠亣鍒扮殑闂锛屽氨鏄?浼氬彉鎴愮┖鏍笺€傝繖涓潙鍏跺疄鎸哄鏄撹俯鐨勩€傛垜鍒氬伐浣滅殑鏃跺€欏氨韪╄繃杩欎釜鍧戯紝鎴戜篃澶氭鐪嬪埌鎴栧惉鍒板埆浜鸿俯杩囪繖涓潙銆傞棶棰樻槸杩欎釜闂鍜寀rlencode缂栫爜鏈夊叧鍏充簬urlencode缂栫爜锛屼竴鑸潵璇达紝闄や簡瀛楁瘝銆佹暟瀛楀拰*銆?銆?銆乢瀛楄妭鍘熸牱杈撳嚭澶栵紝鍏朵粬瀛楄妭閮戒細浠?XX锛堝崄鍏繘鍒讹級鐨勫舰寮忕紪鐮?浣嗘槸鏈変竴绉嶇壒娈婃儏鍐碉紝濡備笅锛歋tringenc=URLEncoder.encode("","UTF-8");System.out.println(enc);//杈撳嚭+绗﹀彿Stringdec=URLDecoder.decode("+","UTF-8");System.out.println(dec);//杈撳嚭绌烘牸澶嶅埗浠g爜鐨勭壒娈婃儏鍐垫槸绌烘牸浼氳缂栫爜涓?鍙凤紝鍚﹀垯+鍙蜂細琚В鐮佷负绌烘牸锛佹敞鎰忥細鍦ㄦ柊鐨凴FC2396瑙勮寖涓紝绌烘牸瀹為檯涓婂彲浠ョ紪鐮佷负%20锛岃В鐮佹椂锛?鍙峰拰%20閮戒細琚В鐮佷负绌烘牸銆傚洖鎯充笂闈㈢殑鍦烘櫙锛屽鏋滄妸甯?鍙风殑base64瀛楃涓插皝瑁呮垚data=锛岀劧鍚庡彂閫佸埌Tomcat绛墂eb鏈嶅姟鍣紝濡傛灉Tomcat绔繘琛寀rldecode瑙g爜锛?浼氫笉浼氬彉鎴愮┖鏍硷紵馃榿骞朵笖Tomcat纭疄杩涜urldecode瑙g爜銆傚綋璋冪敤鑰呯殑Content-Type涓篴pplication/x-www-form-urlencoded鏃讹紝鍙互鐭ラ亾鏈夎繖鏍风殑鎿嶄綔銆傛兂浜嗚В璇︽儏鍙互鐪嬫垜鍐欑殑杩欑瘒鏂囩珷杩欑瘒鏂囩珷瑙e喅浜唜-www-form-urlencoded瀵艰嚧鐨勬帴鍙e鎺ュけ璐ラ棶棰樸€傝В鍐宠繖涓棶棰樹富瑕佹湁涓ょ鏂规硶锛屽涓嬶細璋冪敤鑰呯敤urlencode瀵瑰弬鏁拌繘琛岀紪鐮併€傛牴鎹鑼冿紝褰揅ontent-Type涓篴pplication/x-www-form-urlencoded鏃讹紝璋冪敤鑰呭繀椤诲鍙傛暟鍚嶅拰鍙傛暟鍊艰繘琛寀rlencode銆俲ava瀹炵幇濡備笅锛歋tringbase64Str=Base64.getEncoder().encodeToString(data);StringrequestStr="data="+URLEncoder.encode(base64Str,"UTF-8");澶嶅埗浠g爜杩欓噷鍋歶rlencode鍚庯紝+浼氳缂栫爜鎴?2B锛屽啀鐢辨湇鍔″櫒瑙g爜锛屽師鏍峰彉鎴?鍙枫€傛敞鎰忥細濡傛灉鎮ㄤ娇鐢ㄧ殑鏄痑pache鐨凥ttpClient锛屾偍鍙互鑰冭檻浣跨敤UrlEncodedFormEntity锛屽畠浼氳嚜鍔ㄦ墽琛屾鎿嶄綔銆備娇鐢╞ase64鐨剈rlsafe鐗堟湰銆傛櫘閫氱殑base64涓嶈兘鐩存帴浣滀负鍙傛暟鍊硷紝鍥犱负瀹冨彲鑳藉寘鍚?銆?銆佷袱涓猽rl-unsafe瀛楃锛屾墍浠ase64鏈変釜鍙樹綋鍙仛urlBase64锛屽皢+銆?鏇挎崲涓簎rl-safe-銆乢銆乯ava瀹炵幇濡備笅:瀛楃涓瞮rlBase64Str=Base64.getUrlEncoder().encodeToString(data);瀛楃涓瞨equestStr="data="+urlBase64Str;