當我對tex進行編碼時,由于某種原因它會切斷部分字符串......可能是什么問題? DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss a", Locale.ENGLISH); Date date = new Date(); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.HOUR,+ 9); String server_time = dateFormat.format(calendar.getTime()); String wmsAuthSign = "server_time=" + server_time + "&hash_value=U2QK9TLB55JWTZr3OKZHtg==&validminutes=120"; wmsAuthSign = "?wmsAuthSign=" + Base64.encodeToString(wmsAuthSign.getBytes(), Base64.DEFAULT);我正在提交這樣的內容:server_time=02/18/2019 23:38:43 PM&hash_value=U2QK9TLB55JWTZr3OKZHtg==&validminutes=120如果你解碼編碼的文本,你會得到一個修剪的結果:server_time=02/18/2019 23:38:43 PM&hash_value=U2QK9TLB55J
1 回答

慕碼人2483693
TA貢獻1860條經驗 獲得超9個贊
由于RFC-2045:
(5) (Soft Line Breaks) The Quoted-Printable encoding REQUIRES that encoded lines be no more than 76 characters long. If longer lines are to be encoded with the Quoted-Printable encoding, "soft" line breaks
源數據字符串:
server_time=02/18/2019 23:38:43 PM&hash_value=U2QK9TLB55JWTZr3OKZHtg==&validminutes=120
Base64 編碼為字符串:
c2VydmVyX3RpbWU9MDIvMTgvMjAxOSAyMzoxMjo1NiBQTSZoYXNoX3ZhbHVlPVUyUUs5VExCNTVKV1RacjNPS1pIdGc9PSZ2YWxpZG1pbnV0ZXM9MTIw
與上面顯示的完全一樣:帶換行符。但是在接收端你可能只解碼第一行
c2VydmVyX3RpbWU9MDIvMTgvMjAxOSAyMzoxMjo1NiBQTSZoYXNoX3ZhbHVlPVUyUUs5VExCNTVK
那是server_time=02/18/2019 23:12:21 PM&hash_value=U2QK9TLB55J
因此,在接收器端解碼整個接收到的數據,而不僅僅是第一行。
或者您可能僅將編碼 Base64 的第一行發送到接收方。
另請查看Mohammad Adil的這個答案:
在 android 上,使用
Base64.NO_WRAP
而不是Base64.DEFAULT
添加回答
舉報
0/150
提交
取消