「java编码解码」java中文编码解码

博主:adminadmin 2023-03-18 14:18:10 458

今天给各位分享java编码解码的知识,其中也会对java中文编码解码进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java中编码与解码分别指什么?

java中编码:URLEncoder.encode(strUri,"utf-8");

java中解码码:URLDecoder.decode(strUri,"utf-8");

java编码和解码        

流读取文件,具有转换编码功能的有:OutputStreamWriter和InputStreamReader,

构造器有如:

InputStreamReader(InputStream in, String charsetName)

创建使用指定字符集的 InputStreamReader。

OutputStreamWriter(OutputStream out, String charsetName)

创建使用指定字符集的 OutputStreamWriter。

处理字符串编码问题:

重新对获取的字符串进行编码:Byte[] bytes = str.getBytes(String encodeCharsetNam);

重新对bytes进行解码,创建新的字符串对象:str = new String(Byte[] bytes,String decodeCharsetName);

一般结合使用:str = new String(str.getBytes(String encodeCharsetName),String decodeCharsetName);

例如:resultName=new String(username.getBytes("ISO-8859-1"),"UTF-8");

还可以加入判断:

if(!Charset.forName("gbk").newEncoder().canEncode(str)){str = new Strin(str.getBytes("ISO-8859-1"),"UTF-8");}else{str = new String(str.getBytes("ISO-8859-1"),"gbk");}

处理请求参数传递编码问题:

java中编码:URLEncoder.encode(strUri,"utf-8");

java中解码码:URLDecoder.decode(strUri,"utf-8");

js中编码:encodeURIComponent(strUri);encodeURI(strUri);escape(str);

js中解码:decodeURIComponent(strUri);decodeURI(strUri);unescape(str);

补充概念:

URI组件:主机、端口、路径、查询参数、片段等。

URI组件分隔符::/?#[]@,冒号用于分隔协议和主机,/用于分隔主机和 路径,?用于分隔路径和查询参数,用于分隔多个查询参数等。

URI中的不安全字符或保留字符: ! * ‘ ( ) ; : @ = + $ , / ? # [ ] 他们具有特殊作用,例如上面的分隔作用。

URI允许出现的字符:只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符,其他字符均需要经过编码之后才能出现在Url中,比如使用保留字符的原意,而不是特殊作用。

js向java/jsp的编码与解码:

js中编码:encodeURI(encodeURI(strUri));decodeURIComponent(decodeURIComponent(strUri));

java/jsp中解码: java.net.URLDecoder.decode(strUri,"UTF-8");

js中编码两次的问题:如果使用一次编码,在浏览器地址栏里,浏览器认为%是个转义字符,浏览器会把%与%之间的编码值,两位两位取出后进行解码。

然后再传递给处理页面,然后由处理页面进行再次解码,这样前面就缺少了一次编码过程,所以前面需要连续两次编码。

java怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串

通过JDK1.6知道String类中getBytes(”编码“)方法可以讲一个数用指定的编码转成一个字节数组,String中通过指定的 charset解码指定的 byte 数组,构造一个新的 String。代码如下:

try{

String s = "java学习";

System.out.println(s);

String result = new String(s.getBytes("GB2312"),"iso-8859-1");

System.out.println(s);

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

扩展资料:

getBytes() 方法有两种形式:

1、getBytes(String charsetName): 使用指定的字符集将字符串编码为 byte 序列,并将结果存储到一个新的 byte 数组中。

2、getBytes(): 使用平台的默认字符集将字符串编码为 byte 序列,并将结果存储到一个新的 byte 数组中。

参考资料:

百度百科-getBytes()

C#如何将java标准base64编码解码为UTF-8编码

        static void Main(string[] args)

        {

            string input = "input";

            byte[] bytesIn = Encoding.UTF8.GetBytes(input);

            string s64In = Convert.ToBase64String(bytesIn);

            //s64In相当于java传过来的字符串

            byte[] bytesOut = Convert.FromBase64String(s64In);

            string output = Encoding.UTF8.GetString(bytesOut);

            Console.WriteLine(output);//==input

            Console.ReadLine();

        }

java里关于String的编码与解码

从语言编码的角度,getBytes(charset)不是解码、也不是编码,是转换。API 说的是针对数据的角度。把一个整体的String分解成byte[]了。

byte[] b2=s.getBytes("gbk");

String ss=new String(b2,"utf-8");

从GBK转换成UTF-8。

UTF8包含更多的文字量。

java怎么把utf-8的字符串转换为gb2312格式

Java中字符串转码,根据实际运用的环境有以下三种方式

1、使用Java.lang.String

这是最常用的方法,先用对应编码获取字节,然后重新构造新编码,示例代码如下:

String s = "清山";  

byte[] b = s.getBytes("utf-8");//编码  

String sa = new String(b, "gb2312");//解码:用什么字符集编码就用什么字符集解码

2、java.io.InputStreamReader/OutputStreamWriter:桥转换

读写文件的应用中,可以使用这种方式,直接在IO流构造中转换,示例代码如下:

InputStream is = new FileInputStream("C:/项目进度跟踪.txt");//文件读取  

InputStreamReader isr = new InputStreamReader(is, "utf-8");//解码  

OutputStream os = new FileOutputStream("C:/项目进度跟踪_gb2312.txt");//文件输出  

OutputStreamWriter osw = new OutputStreamWriter(os, "gb2312");//开始编码

3、java.nio.Charset

使用nio中的Charset转换字符,示例代码如下:

Charset inSet = Charset.forName("utf-8");  // 解码字符集 

Charset outSet = Charset.forName("gb2312");  // 编码字符集  

CharsetDecoder de = inSet.newDecoder();  // 解码器

CharsetEncoder en = outSet.newEncoder();// 编码

在Java中如何进行BASE64编码和解码

import sun.misc.BASE64Encoder; 

import sun.misc.BASE64Decoder; 

// 将 s 进行 BASE64 编码 

public static String getBASE64(String s) { 

if (s == null) return null; 

return (new sun.misc.BASE64Encoder()).encode( s.getBytes() ); 

// 将 BASE64 编码的字符串 s 进行解码 

public static String getFromBASE64(String s) { 

if (s == null) return null; 

BASE64Decoder decoder = new BASE64Decoder(); 

try { 

byte[] b = decoder.decodeBuffer(s); 

return new String(b); 

} catch (Exception e) { 

return null; 

}

java编码解码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java中文编码解码、java编码解码的信息别忘了在本站进行查找喔。