`

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  

分享到:
评论

相关推荐

    base64.min.js

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

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

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

    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的JavaScript实现js-base64.zip

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

    base64decode

    base64decode 编码,解码。

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

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

    jqueryBase64 完美支持中文加密解密

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

    Encode.Decode.Base64.alfredworkflow

    Alfred软件的workflow,支持md5、base64等算法快速编解码

    jquery.base64.js

    中文参数转码,避免中文参数直接出现在url中,//对 123321 进行加密 var str = $.base64.encode('123321'); alert(str); //对 str 进行解密 var dstr = $.base64.decode(str); alert(dstr)

    易语言Base64编解码新汇编

    易语言Base64编解码新汇编源码,Base64编解码新汇编,P_Bin,P_Str,Base64编码,Base64Encode,Base64解码,Base64Decode

    AS3的BASE64编码与解码类

    今天在国外网站上淘到一个很好用的AS3的BASE64类 感觉写得简洁而强大。很好,赶快放上来。 调用代码: import com . dynamicflash . utils . Base64 ; //编码和解码字符串 var source : String = "Hello, world" ...

    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.zip

    Base64.jar 工具下载 Java Base64 这是一个用于编码和解码(encode/decode )base64字符串和数据流的Java开源类库。Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一。

    BASE64Decoder jar包

    base64加密和解密,很好用,亲测试可用,包含sun.misc.BASE64Decoder和sun.misc.BASE64Encoder

    unicode方式base64加解密及后台处理方式

    /** *base64加密与解密 ...* 2、解密:String keywords =new String(Base64.decode(keywords),"unicode"); *本JS使用方法如下: * 1、调用encode64(str)方法加密字符 * 2、调用decode64(str)方法解密字符 **/

    base64包,decodeBase64包,encodeBase64String包

    base64包,decodeBase64包,encodeBase64String包所需的jar包 commons-codec-1.10.jar

    base64:js实现base64编码解码

    base64 js实现base64编码解码 base64编码原理: base64可编码范围(ASCII字符范围内\u0000-\u00ff),所以每个字符必须8位,以3个字符为一组,转换为6bit的字节(3*8=4*6=24). ...base64.decode('需要解码的字符');

    JS的encodeURI和java的URLDecoder.decode使用介绍

    如果不想在url中看到有明文,比如http://localhost:8080/template_1/login.action?user=张三 可以使用js的encodeURI的URLDecoder.decode一起使用一起来把url加密下 (1)JS在页面上把数据var val = encodeURI...

    base64.pas_earjhy_base64_zip_

    encode decode base64

Global site tag (gtag.js) - Google Analytics