`

tomcat6.0下 用Base64.decode解码 中文乱码如何处理

阅读更多

 

在tomcat6.0 下 Base64.decode() 解码的中文为什么是乱码,我的tomcat编码是utf-8:
而在javaIDE环境下运行,Base64.decode()解码的中文得出的是正常。有没有好的解决方案?

写道
public static String Base64ToStr(String s) {
if (s == null)
return null;
BASE64Decoder decoder = new BASE64Decoder();
try {
byte[] b = decoder.decodeBuffer(s);

return new String(b, "UTF-8");

} catch (Exception e) {
return null;
}
}

 

Java 虽然是采用 Unicode 字符的。但是在网络通信中,都是采用字节进行传输的,由于在传输时并没有告之 tomcat 使用什么编码,那么 tomcat 就会使用 ISO8859-1 的编码格式进行传输。  

举个例子吧,比如我们要传输的字符串是“劳动节快到了”,这个串的 GBK 编码为:  

c0cd b6af bdda bfec b5bd c1cb (GBK 是采用两个字节的,这里采用空格进行了分隔)  

在网络传输中是以 Big-Endian 方式传送的,也就是一个字节一个字节地传,依次会这样:  

c0 cd b6 af bd da bf ec b5 bd c1 cb  

在 tomcat 接收到这些字节时,并不知道该如何去组装这些字节,默认就使用一个字节编码的 ISO8859-1 进行编码,得出的字符为:  

Java codeÀ Í ¶ ¯ ½ Ú ¿ ì µ ½ Á Ë  
c0 cd b6 af bd da bf ec b5 bd c1 cb  

分享到:
评论

相关推荐

    jquery.base64.js_downcc.zip

    2. `$.base64.decode()`: 相反,这个函数接收一个Base64编码的字符串,并将其解码回原始的字节数组或字符串。这对于解析Base64编码的JSON数据或者还原Base64编码的图片等资源至关重要。 3. `$.base64.btoa()`和`$....

    base64.min.js

    前端base64编码插件。 // 编码: Base64.encode() //解码 Base64.decode();

    js base64 解码解决中文乱码问题

    使用方法:utf8to16(base64decode(你的加密字符串));

    Android图片的Base64编码与解码及解码Base64图片方法

    这里的`Base64.decode()`方法用于将Base64字符串解码为字节数组,然后使用`BitmapFactory.decodeByteArray()`将字节数组恢复为`Bitmap`。 ### 解码Base64图片的特殊情况 在某些场景下,Base64编码的图片字符串会...

    jquery.base64.js及使用方法

    解码时,使用`$.base64.decode()`函数: ```javascript var decodedNumber = $.base64.decode(encodedNumber); console.log(decodedNumber); // 输出:1234567890 ``` ### 4. 实际应用:跳转携带加密数据 在"公司...

    Base64.dll(Base64编解码,附VB示例)

    Public Declare Sub Decode Lib "Base64" (ByRef Dest() As Byte, ByRef Src() As Byte) Public Declare Sub DecodeEx Lib "Base64" (ByRef Dest() As Byte, ByRef Src() As Byte) Public Declare Sub ...

    base64-编码解码工具-python实现源码

    除了基本的编码和解码,`base64`模块还提供了其他功能,如URL安全的Base64编码(`urlsafe_b64encode()`和`urlsafe_b64decode()`),以及处理多行Base64编码的辅助函数(`b64encode()`的`line_length`参数)。...

    JS 版本的base64函数实现(base64encode,base64decode)

    用js实现的base64encode,base64decode函数. 包括: function base64encode(str) { function base64decode(str) { function utf16to8(str) { function utf8to16(str) { function doit() {

    Base64的JavaScript实现js-base64.zip

    base64.js 是 Base64 的 JavaScript 实现。浏览器:[removed][removed]node.jsvar Base64 = require('./base64.js').Base64;示例:Base64.encode('dankogai'); // ZGFua29nYWk= Base64.encode('小飼弾'); // ...

    Jquery.base64.js

    `,你可以使用`var decodedStr = $.base64.decode(encodedStr);`将其解码回原来的字符串。 3. **文件转换**: 在处理文件时,`jQuery.base64.js`也提供了便利。比如,你可以先读取文件的Blob对象,然后通过`$.base...

    jqueryBase64 完美支持中文加密解密

    完美支持中文的jqueryBase64加密解密,加密:$.base64.encode("要加密的文字"); $.base64.decode("要解密的密文");

    Java Base64编码和解码

    只要原始的字节数组能够正确表示中文字符(比如使用UTF-8编码),Base64编码后的结果就能正确解码回中文。 在提供的`Base64.java`文件中,我们可以预计它实现了一个自定义的Base64编码和解码功能。这个程序可能包含...

    jq_base64.js

    jQuery Base64库提供两个主要方法:`$.base64.encode()`和`$.base64.decode()`,分别用于进行Base64编码和解码。 - 编码: ```javascript var encodedData = $.base64.encode("Hello, World!"); ``` - 解码: ```...

    微信小程序base64加解密

    JavaScript提供了`btoa()`和`atob()`两个函数,分别用于Base64编码和解码。但是需要注意的是,这两个函数并不适用于所有环境,特别是对于服务端的Node.js环境。在微信小程序中,由于其运行环境的限制,这两个函数...

    base64decode

    base64decode 编码,解码。

    如何解决JDK1.6下的Base64

    在这个例子中,我们使用`Base64.encodeBase64()`方法将字符串编码为Base64,然后用`Base64.decodeBase64()`方法解码回原始字符串。 另一种解决方案是使用Google的Guava库,它同样提供了Base64编码功能。Guava库在...

    pb-base64.zip

    num=GetFileEncode64(ls_filename, ls_ret)//base64编码 ls_ret=trim(ls_ret) //-------解码---通过blob类型变量接收,一定要初始化足够空间大小 num=len(ls_ret) num=Base64Decode(lb_ret, ls_ret,num)//解码 p_1....

    base64包,decodeBase64包,encodeBase64String包

    在Java中,处理Base64编码和解码的库通常包含在特定的包中,比如Apache Commons Codec库。这个库提供了方便的API来执行Base64的编码和解码操作。 Apache Commons Codec是Apache软件基金会的一个开源项目,提供了一...

Global site tag (gtag.js) - Google Analytics