当前位置: 首页 > 面试题库 >

C#和Java之间的Base64区别

葛胡媚
2023-03-14
问题内容

image 是图像文件的字符串。

我在C#中具有以下代码:

Convert.ToBase64String(image);

和Java中的代码如下:
org.apache.commons.codec.binary.Base64.encodeBase64(image.getBytes())

结果是不同的。

有人说是因为

  • Java字节:-128至127

  • C#字节:0到255

但是我该如何解决呢?如何Convert.ToBase64String()在Java中实现C#?通过使用Java,我需要与C#中相同的结果。


问题答案:

您正在对 字符串进行 base64编码吗?你想做什么?您首先需要将字符串转换为字节序列,然后选择一种编码,例如UTF-8或UTF-16。

我的猜测是您设法在双方上使用了不同的编码。Java
String.GetBytes()使用默认字符集(在西方Windows版本上可能类似于Latin1)。对于C#,您没有发布相关代码。

要解决此问题,请选择一种编码,并在两侧明确使用它。我建议使用UTF-8
在Java方面,您应该使用正确的编码方法,因此您不会以“修饰的UTF-8”结尾,但是由于我不是Java程序员,所以我不知道哪些方法会输出修饰的UTF-8
。我 认为 只有在您滥用某些内部序列化方法时才会发生。

有符号和无符号字节在这里不相关。中间字节缓冲区将有所不同,但是原始字符串和base64字符串在两侧应相同。



 类似资料:
  • 问题内容: 我只是在阅读一些Java书籍并制作一些小程序进行练习,我创建了一个小代码来获取有关所输入路径的信息,该代码为: 现在在输入对话框中,当我输入时,结果是,但是当我输入C:/时,它将显示C中目录和文件的完整列表。 奇怪的是,D驱动器和其他驱动器不会发生这种情况(即D:/和D:的结果是相同的),这是怎么回事? 更新 使用C#在WPF中也会发生同样的情况! 问题答案: 表示“驱动器上当前选择的

  • 本文向大家介绍Java和C语言之间的区别,包括了Java和C语言之间的区别的使用技巧和注意事项,需要的朋友参考一下 Java和C都是编程世界中最流行的编程语言,由于它们的各种重要特征和特性,这两种语言都在全球范围内被广泛使用。 根据它们的功能,以下是Java和C之间的重要区别 序号 键 爪哇 C 1 介绍了 Java是在引入年份之后以C语言开发的,它是由James Gosling在1995年开发的

  • 有人能解释一下Base64和Multipart的优点吗 我知道Multipart比更快... 但是仍然有很多开发者在使用Base64...我研究了两个留档,但我不清楚

  • 问题内容: 我在Java中有以下代码: 以及C#中的以下代码: 字节数组“ secretKey”和“ bytes”是等效的,但字节数组“ rawHmac”不同,字符串“ result”不同。谁能看到原因? 问题答案: 不要这样做: 这将使用平台默认编码将字符串转换为字节数组。平台之间可能会有所不同,而您想要一些可重复的东西。我建议使用UTF-8: (当然,对密钥执行相同的操作。) 然后,您应该在C

  • C# 最吸引人的地方是它与 Java 的区别而不是它们之间的相似性。下面就来介绍一下 C# 与 Java 之间的区别: 序号 Java C# 1 Java 是 Oracle 开发的一种高级、健壮、安全和面向对象的编程语言 C# 是微软开发的在 .Net Framework 上运行的一种面向对象的编程语言 2 Java 语言需要在 Java 运行环境(JRE)下运行  C# 语言需要在公共语言运行库

  • 本文向大家介绍C和Python之间的区别,包括了C和Python之间的区别的使用技巧和注意事项,需要的朋友参考一下 C和Python都是主要使用的编程语言。各种特性使它们在程序设计领域流行。根据这些特征,我们可以区分C和Python。 以下是C和Python之间的重要区别。 序号 键 C语言 Python语言 定义 Python是一种通用的解释型,交互式,面向对象的高级编程语言。 类型 另一方面,