为了账号安全,请及时绑定邮箱和手机立即绑定

java是如何编码解码的?

/ 猿问

java是如何编码解码的?

浮云间 2018-09-19 10:06:44

java是如何编码解码的


查看完整描述

1 回答

?
杨魅力

[java] view plain copy

  • String name="I am 小明";  

  • toHex(name.toCharArray());  

  • <span style="font-size:18px; white-space: pre;"></span><pre 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);  

  • }  


查看完整回答
反对 回复 2018-10-04

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信