最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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í),下面話(huà)不多說(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)文章

  • logback 實(shí)現(xiàn)給變量指定默認(rèn)值

    logback 實(shí)現(xiàn)給變量指定默認(rèn)值

    這篇文章主要介紹了logback 實(shí)現(xiàn)給變量指定默認(rèn)值操作,具有很好的參考家價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java復(fù)制(拷貝)數(shù)組的4種方法:arraycopy()方法、clone() 方法、copyOf()和copyOfRan

    Java復(fù)制(拷貝)數(shù)組的4種方法:arraycopy()方法、clone() 方法、copyOf()和copyOfRa

    這篇文章主要介紹了Java復(fù)制(拷貝)數(shù)組的4種方法:arraycopy()方法、clone() 方法、copyOf()和copyOfRan,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Logback 使用TurboFilter實(shí)現(xiàn)日志級(jí)別等內(nèi)容的動(dòng)態(tài)修改操作

    Logback 使用TurboFilter實(shí)現(xiàn)日志級(jí)別等內(nèi)容的動(dòng)態(tài)修改操作

    這篇文章主要介紹了Logback 使用TurboFilter實(shí)現(xiàn)日志級(jí)別等內(nèi)容的動(dòng)態(tài)修改操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • java并發(fā)包JUC同步器框架AQS框架原文翻譯

    java并發(fā)包JUC同步器框架AQS框架原文翻譯

    發(fā)現(xiàn)了一篇JDK作者的論文《The?java.util.concurrent?Synchronizer?Framework》主要描述了作者對(duì)AbstractQueuedSynchronizer同步器框架的設(shè)計(jì)和實(shí)現(xiàn)。權(quán)威性毋庸置疑!自然需要拜讀一下,配上中文翻譯,希望大家能有所收獲
    2022-02-02
  • JAVA SpringBoot統(tǒng)一日志處理原理詳解

    JAVA SpringBoot統(tǒng)一日志處理原理詳解

    這篇文章主要介紹了SpringBoot的統(tǒng)一日志處理原理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-09-09
  • 解決IDEA插件市場(chǎng)Plugins無(wú)法加載的問(wèn)題

    解決IDEA插件市場(chǎng)Plugins無(wú)法加載的問(wèn)題

    這篇文章主要介紹了解決IDEA插件市場(chǎng)Plugins無(wú)法加載的問(wèn)題,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Java高并發(fā)下鎖的優(yōu)化詳解

    Java高并發(fā)下鎖的優(yōu)化詳解

    這篇文章主要介紹了Java高并發(fā)下鎖的優(yōu)化詳解,鎖是最常用的同步方法之一,在高并發(fā)的環(huán)境下,激烈的鎖競(jìng)爭(zhēng)會(huì)導(dǎo)致程序的性能下降,下面是一些關(guān)于鎖的使用建議,可以把這種副作用降到最低,需要的朋友可以參考下
    2024-01-01
  • 關(guān)于SpringBoot集成Lettuce連接Redis的方法和案例

    關(guān)于SpringBoot集成Lettuce連接Redis的方法和案例

    這篇文章主要介紹了關(guān)于SpringBoot集成Lettuce連接Redis的方法和案例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • JavaWeb實(shí)戰(zhàn)之編寫(xiě)單元測(cè)試類(lèi)測(cè)試數(shù)據(jù)庫(kù)操作

    JavaWeb實(shí)戰(zhàn)之編寫(xiě)單元測(cè)試類(lèi)測(cè)試數(shù)據(jù)庫(kù)操作

    這篇文章主要介紹了JavaWeb實(shí)戰(zhàn)之編寫(xiě)單元測(cè)試類(lèi)測(cè)試數(shù)據(jù)庫(kù)操作,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)javaweb的小伙伴們有很大的幫助,需要的朋友可以參考下
    2021-04-04
  • Java多線(xiàn)程解決龜兔賽跑問(wèn)題詳解

    Java多線(xiàn)程解決龜兔賽跑問(wèn)題詳解

    這篇文章主要為大家詳細(xì)介紹了Java如何使用線(xiàn)程休眠模擬龜兔賽跑比賽問(wèn)題,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-08-08

最新評(píng)論

周口市| 于都县| 福州市| 崇左市| 洛扎县| 个旧市| 东明县| 瑞丽市| 昭苏县| 依安县| 寻乌县| 寿光市| 全南县| 康保县| 土默特右旗| 抚顺市| 南昌市| 合肥市| 静海县| 会东县| 深圳市| 汾西县| 镇安县| 潢川县| 佳木斯市| 奉化市| 肇州县| 延安市| 弋阳县| 额尔古纳市| 诏安县| 长阳| 黄石市| 高碑店市| 常德市| 天津市| 于都县| 邵阳市| 宁强县| 南郑县| 赤城县|