前几天在浏览器的地址栏中传递中文时,出现了发生乱码的问题。 经过思考,解决方法有很多。 我还是采用转换码的方式,把中文转换成Unicode码,然后解密成中文。 以下是在实现的过程中非常简单的。
package cy.code;
公共类cy编码器{
私有字符串zh str; //中文字符串
私有字符串统一代码; //将中文字符串转换为Unicode代码并存储在此属性中。
publiccyencoder (字符串zhstr ) {
this.zhStr=zhStr;
}
公共字符串getz hstr ()。
返回zh str;
}
publicvoidsetzhstr (字符串zhstr ) {
this.zhStr=zhStr;
}
公共字符串到unicode
string buffer unicode=new string buffer (;
for(intI=0; I
charc=zhstr.charat(I;
unicode.append (‘\u ‘ integer.to hex string ) c );
}
this.unicode=unicode.toString (;
return unicode.toString (;
}
公共字符串to zhcn (
string buffer gbk=new string buffer (;
string[]hex=unicode.split((\\u ); //妈的,分裂让我思考了很久! ‘\\u ‘而不是’\\\u ‘
for(intI=1; I
int data=integer.parseint (hex [ I ],16;//将十六进制转换为十进制数据。
GBK.append () char )数据; 强制转换为char型的是我们的中文字符。
}
System.out.println (这是从Unicode代码转换为中文字符的:(gbk.tostring ) );
return gbk.toString (;
}
publicstaticvoidmain (string args [ ] ) {
cy encoder fc=新cy encoder ()布局的说法) );
system.out.println (fc.to unicode );
fc.tozhCN (;
}
}
(自) 3358 w2c2y2. iteye.com/blog/468140 ) ) ) ) )。
</快三稳赚10大技巧ata=integer.parseint (hex [ I ],16;//将十六进制转换为十进制数据。
GBK.append () char )数据; 强制转换为char型的是我们的中文字符。
}
System.out.println (这是从Unicode代码转换为中文字符的:(gbk.tostring ) );
return gbk.toString (;
}
publicstaticvoidmain (string args [ ] ) {
cy encoder fc=新cy encoder ()布局的说法) );
system.out.println (fc.to unicode );
fc.tozhCN (;
}
}
(自) 3358 w2c2y2. iteye.com/blog/468140 ) ) ) ) )。