亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

c#和java base64不一致的解決方法

 更新時(shí)間:2018年11月05日 15:43:49   作者:ChnHonKer-小河  
最近非常郁悶的處理這個(gè)base64的問(wèn)題,同樣的一個(gè)圖片文件,在java和c#進(jìn)行base64編碼后結(jié)果不一樣,苦惱了很久,下面這篇文章主要給大家介紹了關(guān)于c#和java base64不一致的解決方法,需要的朋友可以參考下

本文主要介紹了關(guān)于c#和java base64不一致的解決方法,分享出來(lái)供大家參考學(xué)習(xí),下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧

不一致的問(wèn)題不是編碼的問(wèn)題  而是json字符串的問(wèn)題通常我們會(huì)json 嵌套  我們先來(lái)看連個(gè)字符串

{"contentType":"","httpMethod":"POST","paramMap":"{\"keyword\":\"華為\"}","url":"https:\/\/bizapi.jd.com\/api\/search\/search"} --第一條
{"contentType":"","httpMethod":"POST","paramMap":{"keyword":"華為"},"url":"https://bizapi.jd.com/api/search/search"}  ----第二條

-----接下來(lái)我們看一下效果

看第二條的

第一條情況:我們將json 字符串 轉(zhuǎn)換為對(duì)象 直接使用 但是  paramMap的值是一個(gè)字符串  我們又要將 該值轉(zhuǎn)換為json在使用的過(guò)程中  我們轉(zhuǎn)換了兩次

第二條情況:直接轉(zhuǎn)換為json對(duì)象 我們分別取不同key的value來(lái)使用      發(fā)生錯(cuò)誤的問(wèn)題 應(yīng)該是有  反斜杠轉(zhuǎn)移符

我們上一下代碼

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Base64
{
 public partial class Form1 : Form
 {
  public Form1()
  {
   InitializeComponent();
  }

  
  private void button1_Click(object sender, EventArgs e)
  {
   Dictionary<string, string> dic = new Dictionary<string, string>();
   dic.Add("Cid", "123456"); dic.Add("type", "int");
   JsonStr jsonstr=new JsonStr(dic,"http://localhost");
   string result = JavaBase64(JsonConvert.SerializeObject(jsonstr));
  }


  #region 實(shí)體類(lèi)
  /// <summary>
  /// 實(shí)體類(lèi)
  /// </summary>
  class JsonStr
  {
   public string Method = "POST";
   public Dictionary<string, string> param;
   public string url = "";
   public JsonStr(Dictionary<string, string> _param, string _url)
   {
    param = _param; url = _url;
   }
  } 
  #endregion


  #region 轉(zhuǎn)換為單字節(jié) java base64
  /// <summary>
  /// 轉(zhuǎn)換為單字節(jié) java base64
  /// </summary>
  /// <param name="str"></param>
  /// <returns></returns>
  public static string JavaBase64(string str)
  {
   byte[] by = Encoding.UTF8.GetBytes(str);
   sbyte[] sby = new sbyte[by.Length];
   for (int i = 0; i < by.Length; i++)
   {
    if (by[i] > 127)
     sby[i] = (sbyte)(by[i] - 256);
    else
     sby[i] = (sbyte)by[i];
   }
   byte[] newby = (byte[])(object)sby;
   return Convert.ToBase64String(newby);
  } 
  #endregion



 }
}

這個(gè)問(wèn)題 近期在與第三方服務(wù)商 遇到j(luò)son問(wèn)題時(shí)處理的

一般c# json嵌套在對(duì)象重 再把整個(gè)對(duì)象轉(zhuǎn)為json   是字符串一

{"contentType":"","httpMethod":"POST","paramMap":"{\"keyword\":\"華為\"}","url":"https:\/\/bizapi.jd.com\/api\/search\/search"}

而上述字符串在第三方那里卻解不開(kāi)  隨后按照代碼里的方式  使字符串為json字符串  中間不含json嵌套的  因?yàn)榍短讜?huì)多出來(lái)很多  反斜杠轉(zhuǎn)移符  所以導(dǎo)致  第三方那里解不開(kāi)

如果想要知道c# java base64 為什么解不開(kāi)

首先了解  c# java  的byte   c# 0~255  java  -128~127  其次是我們的字符串    我們的字符串  base64  編碼前對(duì)比  編碼后對(duì)比  如果一致問(wèn)題是可以解決的  剩下的思考問(wèn)題就留給你遐想了

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • spring配置不掃描service層的原因解答

    spring配置不掃描service層的原因解答

    這篇文章主要介紹了spring配置不掃描service層的原因解答,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • idea代碼模板設(shè)置方式

    idea代碼模板設(shè)置方式

    這篇文章主要介紹了idea代碼模板設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Java tomcat環(huán)境變量及idea配置解析

    Java tomcat環(huán)境變量及idea配置解析

    這篇文章主要介紹了Java tomcat環(huán)境變量及idea配置解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • 使用arthas命令redefine實(shí)現(xiàn)Java熱更新(推薦)

    使用arthas命令redefine實(shí)現(xiàn)Java熱更新(推薦)

    今天分享一個(gè)非常重要的命令 redefine ,主要作用是加載外部的 .class 文件,用來(lái)替換 JVM 已經(jīng)加載的類(lèi),總結(jié)起來(lái)就是實(shí)現(xiàn)了 Java 的熱更新,感興趣的朋友跟隨小編一起看看吧
    2020-05-05
  • 如何使用Java語(yǔ)言編寫(xiě)打地鼠游戲全過(guò)程

    如何使用Java語(yǔ)言編寫(xiě)打地鼠游戲全過(guò)程

    打地鼠是我們非常熟悉的一款小游戲,它的游戲結(jié)構(gòu)和規(guī)則也都比較簡(jiǎn)單,那么如果能夠親自徒手開(kāi)發(fā)這樣的一款經(jīng)典小游戲呢?這篇文章主要給大家介紹了關(guān)于如何使用Java語(yǔ)言編寫(xiě)打地鼠游戲的相關(guān)資料,需要的朋友可以參考下
    2024-06-06
  • Springboot RestTemplate 簡(jiǎn)單使用解析

    Springboot RestTemplate 簡(jiǎn)單使用解析

    這篇文章主要介紹了Springboot RestTemplate 簡(jiǎn)單使用解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 在windows下揪出java程序占用cpu很高的線程并完美解決

    在windows下揪出java程序占用cpu很高的線程并完美解決

    這篇文章主要介紹了在windows下揪出java程序占用cpu很高的線程并完美解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • springboot注入yml配置文件 list報(bào)錯(cuò)的解決方案

    springboot注入yml配置文件 list報(bào)錯(cuò)的解決方案

    這篇文章主要介紹了springboot注入yml配置文件 list報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 詳解java之redis篇(spring-data-redis整合)

    詳解java之redis篇(spring-data-redis整合)

    本篇文章主要介紹了java之redis篇,主要詳細(xì)的介紹了spring-data-redis整合,有興趣的可以了解一下。
    2017-01-01
  • Java深入分析動(dòng)態(tài)代理

    Java深入分析動(dòng)態(tài)代理

    動(dòng)態(tài)代理指的是,代理類(lèi)和目標(biāo)類(lèi)的關(guān)系在程序運(yùn)行的時(shí)候確定的,客戶(hù)通過(guò)代理類(lèi)來(lái)調(diào)用目標(biāo)對(duì)象的方法,是在程序運(yùn)行時(shí)根據(jù)需要?jiǎng)討B(tài)的創(chuàng)建目標(biāo)類(lèi)的代理對(duì)象。本文將通過(guò)案例詳細(xì)講解一下Java動(dòng)態(tài)代理的原理及實(shí)現(xiàn),需要的可以參考一下
    2022-07-07

最新評(píng)論