`

Base64编码的中文编码问题

 
阅读更多
Base64编码和解码在处理英文的时候没有问题,处理中文的时候暗藏陷阱!
原因是Base64在处理字符串的时候使用平台的缺省编码方式。

 Base64 b64 = new Base64();
String s = new String(b64.encode(content));


如果content是中文,那么new String(b64.encode(content))可能使用UTF-8或者GB2312,而这两种编码方式生成的base64编码是不同的。这样,若果A平台的编码方式是UTF-8,B平台是GB2312,那么在A上用Base64编码的的字符串在B平台上解码就是乱码。
为了避免中文乱码的问题,可以强制在编码的时候使用UTF-8

String s= new String(b64.encode(content.getBytes("UTF-8")), "UTF-8"));


这样可以强制Base64编码的时候使用UTF-8
分享到:
评论

相关推荐

    Delphi Base64编码,javascript解码汉字乱码解决方法演示程序(源代码)

    Delphi进行Base64编码后,如果使用javascript解码,会出现如下问题: 1. 汉字乱码 2. 空格变成 + 号 本资源演示Delphi代码,实现javascript能正确进行Base64解码,不出现上述2个问题。 解决思路:进行Base64前先...

    labview 图片缩放 base64编码base64解码

    在这个特定的场景中,我们关注的是如何在LabVIEW中处理图片,包括图片的缩放、Base64编码和解码。 1. **图片缩放**: 在LabVIEW中,你可以使用图像处理库来实现图片的缩放功能。这个库提供了各种图像操作函数,...

    易语言汇编base64编码

    1. **Base64解析**:接收Base64编码的字符串,根据Base64字符集将每个字符转换回6位的二进制数。 2. **组合二进制数据**:将4个6位的二进制数组合成3个8位的字节,注意需要处理末尾的填充字符"="。 3. **数据恢复*...

    base64 编码与解码 中文完美支持

    "完美支持中文"意味着该Base64工具不仅能够处理ASCII字符,还能够正确处理UTF-8编码的中文字符,避免出现乱码情况。 Base64编码的过程是这样的:首先,将二进制数据按每3个字节分为一组(24位),然后将这24位数据...

    Base64编码解码工具V1.5

    "Base64编码解码工具V1.5"是一个专为此目的设计的软件,它能方便地对Base64字符串进行编码和解码,并且能有效处理可能出现的乱码问题。该软件的.exe文件表明它是一个独立的应用程序,可以直接在Windows系统上运行。...

    Base64编码解码工具成品+源码

    使用易语言编写Base64编码解码工具,意味着该程序的界面和逻辑都是基于中文,对于中文使用者来说,理解和修改源码会更加直观。 易语言源码文件"Base64编码解码.e"包含了实现Base64编码和解码功能的算法和用户界面...

    文件转换为Base64编码

    - **配置文件**:在配置文件中,Base64编码可以安全地存储敏感数据,如加密密钥,因为它们看起来像乱码,难以被直接解读。 了解并掌握Base64编码对于IT从业者来说是非常重要的,无论是开发Web应用、处理邮件、编写...

    base64编码解码离线工具

    Base64编码是一种在网络上传输二进制数据时常用的编码方式,它将任意二进制数据转换成可打印的ASCII字符序列。这种编码方法最初是为了在电子邮件系统中传输非ASCII字符而设计的,如今在很多场景下都有应用,如图片...

    C语言base64编码解码库

    在IT领域,Base64是一种常见的编码方式,用于将二进制数据转化为可以在电子邮件系统、文本文件等中安全传输的ASCII字符串。C语言是编程语言的基础,被广泛应用于系统编程和嵌入式开发,因此一个C语言实现的Base64...

    Base64编码jar包

    注意,虽然这里介绍的是`javabase64-1.3.1.jar`库,但Java 8及更高版本已经内置了`java.util.Base64`类,提供了一套标准的Base64编码和解码接口,因此你也可以选择使用Java自带的API,具体用法类似。 总的来说,...

    BASE64编码方法

    **BASE64编码方法** BASE64是一种广泛用于网络数据传输和存储的编码方式,它将任意二进制数据转换成可打印的ASCII字符序列。这种方法最初被设计用来在电子邮件系统中传输非ASCII字符,现在则被应用于各种场景,如在...

    易语言 base64编码转图片 如何 提高转换速度.zip

    在IT行业中,Base64编码是一种常见的数据编码方式,它将二进制数据转化为可打印的ASCII字符,常用于在网络上传输图片、音频或视频等非文本数据。易语言作为一款中国本土化的编程语言,提供了处理Base64编码的功能。...

    Base64编码解码器

    Base64编码是一种在互联网上广泛使用的数据编码方式,它将任意二进制数据转换成可打印的ASCII字符,主要用于在不支持二进制传输的环境下(如电子邮件)传输数据。这种编码方式将每3个字节的数据转换为4个6位的十六...

    java和js相互base64编码解码

    在IT行业中,Base64是一种常见的数据编码方式,它将任意二进制数据转换为可打印的ASCII字符,常用于在网络上传输包含非ASCII字符的数据,如图片或PDF等。在Java和JavaScript中,Base64编码和解码是两个重要的功能,...

    QT图片BAse64编码与解码

    这个Demo的价值在于其代码简洁明了,方便其他开发者理解和复用,解决在QT项目中涉及图片Base64编码和解码的问题。通过学习和理解这个示例,开发者可以快速掌握在QT环境下处理图片Base64编码的技巧,提高代码的效率...

    Hex十六进制/Base64编码转换器

    Hex十六进制和Base64是两种常见的编码方式,用于将原始数据转化为特定格式,以适应不同的应用场景。 十六进制(Hexadecimal)编码是一种将二进制数据转化为人类可读的形式的方法。它基于16个符号(0-9的阿拉伯数字...

    Base64编码解码、无乱码。本人亲自测试使用。.

    本人亲自测试了这个软件,在转换的时候注意选择编码方式,否则也容易导致乱码的出现。QmFzZTY05piv572R57uc5LiK5pyA5bi46KeB55qE55So5LqO5Lyg6L6TOEJpdOWtl+iKguS7o+eggeeahOe8lueggeaWueW8j+S5i+S4gO+8jOWkp+...

    Base64.zip_labview base64

    这个LabVIEW实现的Base64编码VI为开发者提供了一种在纯LabVIEW环境下处理Base64编码问题的方法,避免了引入第三方库的复杂性和潜在的兼容性问题。对于那些需要在不支持外部库的环境中使用Base64编码的LabVIEW项目来...

    c++ base64 编码

    在IT领域,Base64是一种用于在网络上传输和存储非ASCII字符的数据编码方式。它将任意二进制数据转换为可打印的ASCII字符序列,主要应用于电子邮件、HTTP传输以及XML文档中。C++作为一门通用的编程语言,也支持Base64...

    Base64编码转换工具

    Base64编码是一种在互联网上广泛使用的数据编码方式,它将任意二进制数据转换成ASCII字符序列,以便在网络传输中不受字符集限制。在标题提到的“Base64编码转换工具”中,我们主要讨论的是一个用C#语言开发的小型...

Global site tag (gtag.js) - Google Analytics