真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java字符解碼代碼實(shí)例 java使用的字符碼集

java里關(guān)于String的編碼與解碼

public

隆林網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),隆林網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為隆林?jǐn)?shù)千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請找那個(gè)售后服務(wù)好的隆林做網(wǎng)站的公司定做!

byte[]

getBytes(String

charsetName)

使用指定的字符集將此String編碼為byte序列,結(jié)果存在一個(gè)byte數(shù)組中

public

String(byte[]

bytes,

String

charsetName)

通過使用指定的

charset

解碼指定的

byte

數(shù)組,構(gòu)造一個(gè)新的

String。

在網(wǎng)絡(luò)傳輸中,信息都是以字節(jié)序列的方式傳輸?shù)?。所以,發(fā)送方的String要按照某種編碼方式(如UTF-8,GBK)編碼為字節(jié)序列,在網(wǎng)絡(luò)中傳輸后,接收方取得這個(gè)字節(jié)序列,按照相同的編碼方式將字節(jié)序列解碼為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);

至于你的那個(gè)情況,要先用gbk編碼,然后再用utf-8解碼才能獲得正常的字符串,我估計(jì)是因?yàn)?/p>

1.傳輸過來的字節(jié)碼是用utf-8編碼的,假設(shè)字節(jié)碼為b。

2.你獲得的那個(gè)字符串,假設(shè)為s,是用gbk對(duì)b進(jìn)行解碼獲得的字符串,所以是亂碼。

3.你使用gbk對(duì)s進(jìn)行編碼,用gbk解碼之后再編碼,于是獲得了原來的b。

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

簡單的說:

b

-

(gbk解碼)

-

亂碼

-

[此處開始是你做的](gbk編碼)

-

b

-

(utf-8解碼)

-

正常字符串

研究完編碼收獲會(huì)不小的,對(duì)以后理解Java的輸入輸出(尤其是網(wǎng)絡(luò)通信和文件讀寫)都很有幫助。

求助,java代碼怎么實(shí)現(xiàn)把html的編碼格式從gb2312轉(zhuǎn)換為UTF-8

Java中字符串轉(zhuǎn)碼,根據(jù)實(shí)際運(yùn)用的環(huán)境有以下三種方式

使用Java.lang.String這是最常用的方法,先用對(duì)應(yīng)編碼獲取字節(jié),然后重新構(gòu)造新編碼,示例代碼如下:String?s?=?"清山";??

byte[]?b?=?s.getBytes("utf-8");//編碼??

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

java.io.InputStreamReader/OutputStreamWriter:橋轉(zhuǎn)換讀寫文件的應(yīng)用中,可以使用這種方式,直接在IO流構(gòu)造中轉(zhuǎn)換,示例代碼如下:

InputStream?is?=?new?FileInputStream("C:/項(xiàng)目進(jìn)度跟蹤.txt");//文件讀取??

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

OutputStream?os?=?new?FileOutputStream("C:/項(xiàng)目進(jìn)度跟蹤_gb2312.txt");//文件輸出??

OutputStreamWriter?osw?=?new?OutputStreamWriter(os,?"gb2312");//開始編碼

java.nio.Charset使用nio中的Charset轉(zhuǎn)換字符,示例代碼如下:Charset?inSet?=?Charset.forName("utf-8");??//?解碼字符集?

Charset?outSet?=?Charset.forName("gb2312");??//?編碼字符集??

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

CharsetEncoder?en?=?outSet.newEncoder();//?編碼

java解碼部分程序。幫忙寫下注釋~

//在連連看中,在合適的條件下,點(diǎn)到兩個(gè)相同的圖形時(shí),這兩個(gè)圖形會(huì)消失,相當(dāng)于刪除這兩個(gè)圖形

//刪除方法

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

//刪除位置坐標(biāo)列表的聲明和實(shí)例化

ArrayListPoint points=new ArrayListPoint();

//當(dāng)兩個(gè)圖形之間可直線連接時(shí)

if(corner1==null){

//將第一個(gè)圖形加入刪除列表

points.add(p1);

//將第二個(gè)圖形加入刪除列表

points.add(p2);

}//當(dāng)只有一個(gè)拐彎時(shí)

else if(corner2==null){

points.add(p1);

points.add(corner1);

points.add(p2);

}//當(dāng)有兩個(gè)拐彎時(shí)

else{

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

Point pt=corner1;

corner1=corner2;

corner2=pt;

}

points.add(p1);

//將第一個(gè)拐角加入刪除列表

points.add(corner1);

points.add(corner2);

points.add(p2);

}

//如果拐角多余兩個(gè),撤銷選中目標(biāo)

if(bDelete){

delete(p1); delete(p2);

}

//執(zhí)行刪除事件

notifyEffect(points);

}

//獲取圖形列數(shù)

public int getCols() {

return cols;

}

/*

* p 原點(diǎn)

*橫向空白點(diǎn)(包括與原點(diǎn)等值的點(diǎn))

*/

//橫向連線路徑獲取

private ArrayListPoint getHSpaces(Point p,Point pg){

ArrayListPoint ps=new ArrayListPoint();

//左邊空白點(diǎn)坐標(biāo)

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

//左邊空白點(diǎn)y值

int col=p.y-dif;

//左邊空白點(diǎn)x值

int row=p.x;

//如果已經(jīng)完成或只有一列的情況,返回循環(huán)

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

//將空白點(diǎn)行列添加進(jìn)數(shù)組列表

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

}

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

//右邊空白點(diǎn)坐標(biāo)

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 原點(diǎn)

*縱向空白點(diǎn)(包括與原點(diǎn)等值的點(diǎn))

*/

//縱向連線路徑獲取

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是如何編碼解碼的

[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);?//生成字符集實(shí)例

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字符解碼代碼實(shí)例 java使用的字符碼集
瀏覽地址:http://weahome.cn/article/doggppe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部