「java解码代码」java编码和解码

博主:adminadmin 2023-01-12 02:24:09 860

本篇文章给大家谈谈java解码代码,以及java编码和解码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java中编码和解码的问题

new String(strLine.getBytes("iso8859-1"),"gb2312")

其实这里很好明白

首先将字符串转换成byte数组。。以iso8859-1的编码来转换。。

然后使用new String创建一个新字符串,前面带上byte[]数组 后面带上他的具体编码。。

一般转码都使用这样的方式。。JSP里经常出现乱码的

都是加上过滤器然后中间使用这个new String(strLine.getBytes("iso8859-1"),"gb2312")方式将编码转换。

java是如何编码解码的

[java] view plain copy

String name="I am 小明";

toHex(name.toCharArray());

span style="font-size:18px; white-space: pre;"/spanpre name="code" class="java"try{

byte[] iso8859=name.getBytes("ISO-8859-1");

[java] view plain copy

toHex(iso8859);

[java] view plain copy

byte[] gb2312=name.getBytes("GB2312");

[java] view plain copy

toHex(gb2312);

[java] view plain copy

byte[] gbk=name.getBytes("GBK");

[java] view plain copy

toHex(gbk);

[java] view plain copy

}

[java] view plain copy

String str="小米";

byte[] b=str.getBytes("UTF-8");

[java] view plain copy

public byte[] getBytes(String charsetName)

throws UnsupportedEncodingException {

if (charsetName == null) throw new NullPointerException();

return StringCoding.encode(charsetName, value, 0, value.length);

}

[java] view plain copy

static byte[] encode(String charsetName, char[] ca, int off, int len)

throws UnsupportedEncodingException

{

StringEncoder se = deref(encoder);

String csn = (charsetName == null) ? "ISO-8859-1" : charsetName;

if ((se == null) || !(csn.equals(se.requestedCharsetName())

|| csn.equals(se.charsetName()))) {

se = null;

try {

Charset cs = lookupCharset(csn); //生成字符集实例

if (cs != null)

se = new StringEncoder(cs, csn);

} catch (IllegalCharsetNameException x) {}

if (se == null)

throw new UnsupportedEncodingException (csn);

set(encoder, se);

}

return se.encode(ca, off, len);

}

[java] view plain copy

private static Charset lookupCharset(String csn) {

if (Charset.isSupported(csn)) {

try {

return Charset.forName(csn);

} catch (UnsupportedCharsetException x) {

throw new Error(x);

}

}

return null;

}

[java] view plain copy

private StringEncoder(Charset cs, String rcn) {

this.requestedCharsetName = rcn;

this.cs = cs;

this.ce = cs.newEncoder()

.onMalformedInput(CodingErrorAction.REPLACE)

.onUnmappableCharacter(CodingErrorAction.REPLACE);

this.isTrusted = (cs.getClass().getClassLoader0() == null);

}

java解码部分程序。帮忙写下注释~

//在连连看中,在合适的条件下,点到两个相同的图形时,这两个图形会消失,相当于删除这两个图形

//删除方法

private void delete(Point p1,final Point p2 , boolean bDelete){

//删除位置坐标列表的声明和实例化

ArrayListPoint points=new ArrayListPoint();

//当两个图形之间可直线连接时

if(corner1==null){

//将第一个图形加入删除列表

points.add(p1);

//将第二个图形加入删除列表

points.add(p2);

}//当只有一个拐弯时

else if(corner2==null){

points.add(p1);

points.add(corner1);

points.add(p2);

}//当有两个拐弯时

else{

if(p1.x!=corner1.xp1.y!=corner1.y){

Point pt=corner1;

corner1=corner2;

corner2=pt;

}

points.add(p1);

//将第一个拐角加入删除列表

points.add(corner1);

points.add(corner2);

points.add(p2);

}

//如果拐角多余两个,撤销选中目标

if(bDelete){

delete(p1); delete(p2);

}

//执行删除事件

notifyEffect(points);

}

//获取图形列数

public int getCols() {

return cols;

}

/*

* p 原点

*横向空白点(包括与原点等值的点)

*/

//横向连线路径获取

private ArrayListPoint getHSpaces(Point p,Point pg){

ArrayListPoint ps=new ArrayListPoint();

//左边空白点坐标

for(int dif=1; ;dif++){

//左边空白点y值

int col=p.y-dif;

//左边空白点x值

int row=p.x;

//如果已经完成或只有一列的情况,返回循环

if(col0||(data[row][col]!=0!pg.equals(new Point(row,col)))) break;

//将空白点行列添加进数组列表

ps.add(new Point(row,col));

}

//后面的和前面的类似了

//右边空白点坐标

for(int dif=1; ;dif++){

int col=p.y+dif;

int row=p.x;

if(col=cols||(data[row][col]!=0!pg.equals(new Point(row,col)))) break;

ps.add(new Point(row,col));

}

return ps;

}

public int[][] getMaps(){

return data;

}

public int getRows() {

return rows;

}

public Point getSltMatrix() {

return sltMatrix;

}

/*

* p 原点

*纵向空白点(包括与原点等值的点)

*/

//纵向连线路径获取

private ArrayListPoint getVSpaces(Point p,Point pg)

{

ArrayListPoint ps=new ArrayListPoint();

//左

for(int dif=1; ;dif++){

int col=p.y;

int row=p.x-dif;

if(row0||(data[row][col]!=0!pg.equals(new Point(row,col)))) break;

ps.add(new Point(row,col));

}

//右

for(int dif=1; ;dif++){

int col=p.y;

int row=p.x+dif;

if(row=rows||(data[row][col]!=0!pg.equals(new Point(row,col)))) break;

ps.add(new Point(row,col));

}

return ps;

}

java 中编码解码问题

new String(strLine.getBytes("iso8859-1"),"gb2312")

其实这里很好明白

首先将字符串转换成byte数组。。以iso8859-1的编码来转换。。

然后使用new String创建一个新字符串,前面带上byte[]数组 后面带上他的具体编码。。

一般转码都使用这样的方式。。JSP里经常出现乱码的

都是加上过滤器然后中间使用这个new String(strLine.getBytes("iso8859-1"),"gb2312")方式将编码转换。

请采纳答案,支持我一下。

java解码

import java.io.UnsupportedEncodingException;

import java.net.URLDecoder;

public class TestDEcoder {

public static void main(String[] args) {

String str = "%E4%B8%AD%E8%BD%AF%E8%9E%8D%E9%91%AB%E6%9C%9F";

try {

String decodeStr = URLDecoder.decode(str, "UTF-8");

System.out.println(decodeStr);

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

}

}

//中软融鑫期

java里关于String的编码与解码

public

byte[]

getBytes(String

charsetName)

使用指定的字符集将此String编码为byte序列,结果存在一个byte数组中

public

String(byte[]

bytes,

String

charsetName)

通过使用指定的

charset

解码指定的

byte

数组,构造一个新的

String。

在网络传输中,信息都是以字节序列的方式传输的。所以,发送方的String要按照某种编码方式(如UTF-8,GBK)编码为字节序列,在网络中传输后,接收方取得这个字节序列,按照相同的编码方式将字节序列解码为String。

请看下面的代码片段:

String

name

=

"张三";

byte[]

b1

=

name.getBytes("UTF-8");

String

name1

=

new

String(b1,

"UTF-8");

//编码解码相同,正常显示

System.out.println(name1);

String

name2

=

new

String(b1,

"GBK");

//编码解码不同,乱码

System.out.println(name2);

byte[]

b2

=

name.getBytes("GBK");

String

name3

=

new

String(b2,

"GBK");

//编码解码相同,正常显示

System.out.println(name3);

String

name4

=

new

String(b2,

"UTF-8");

//编码解码不同,乱码

System.out.println(name4);

至于你的那个情况,要先用gbk编码,然后再用utf-8解码才能获得正常的字符串,我估计是因为

1.传输过来的字节码是用utf-8编码的,假设字节码为b。

2.你获得的那个字符串,假设为s,是用gbk对b进行解码获得的字符串,所以是乱码。

3.你使用gbk对s进行编码,用gbk解码之后再编码,于是获得了原来的b。

4.你使用utf-8解码,所以获得了正常的字符串。

简单的说:

b

-

(gbk解码)

-

乱码

-

[此处开始是你做的](gbk编码)

-

b

-

(utf-8解码)

-

正常字符串

研究完编码收获会不小的,对以后理解Java的输入输出(尤其是网络通信和文件读写)都很有帮助。

关于java解码代码和java编码和解码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。