ZKX's LAB

java 汉字编码转换 JAVA中如何将汉字转换为带%号的编码,比如“人”是%C8%CB…

2021-04-07知识1

JAVA的编码转换问题?特别诡异的问题 字符编码分两步:1。使用该字符串默认编码方式获得他正确的字节流。2。使用正确的字节流创建新的编码字符串。你的代码在我的机器上是正常的,因为在我的机器上默认的编码是utf-8,所以你的代码在我的机器里全部都是用utf-8,读字节再用Utf-8还原出来。但是如果我改成message=new String(message.getBytes(\"GBK\"));System.out.println(message);这样就乱码,所以我怀疑你的环境默认的是gbk编码,所以你要message=new String(message.getBytes(\"GBK\"),\"utf-8\");这样写才能正确吧gbk转换成utf-8,你要先用gbk编码读出正确的字符串,然后使用utf-8重建字符串才是真正的转换。

java代码转换为汉字 public static String decodeUnicode(String theString){char aChar;int len=theString.length();StringBuffer outBuffer=new StringBuffer(len);for(int x=0;x;{aChar=theString.charAt(x+);if(aChar='\\\\'){aChar=theString.charAt(x+);if(aChar='u'){int value=0;for(int i=0;i;i+){aChar=theString.charAt(x+);switch(aChar){case '0':case '1':case '2':case '3':case '4':case '5':case '6':case '7':case '8':case '9':value=(value)+aChar-'0';break;case 'a':case 'b':case 'c':case 'd':case 'e':case 'f':value=(value)+10+aChar-'a';break;case 'A':case 'B':case 'C':case 'D':case 'E':case 'F':value=(value)+10+aChar-'A';break;default:throw new IllegalArgumentExceptionMalformed encoding.\");}}outBuffer.append((char)value);} else {if(aChar='t'){aChar='\\t';} else if(aChar='r'){aChar='\\r';} else if(aChar='n'){aChar='\\n';} else if(aChar='f'){aChar='\\f';}outBuffer.append(aChar);}} else {outBuffer.append(aChar);}}return outBuffer.toString();}试下这个方法

关于汉字转换成JAVA代码的问题 把INPUT改成想转换的汉字import java.io.UnsupportedEncodingException;public class SoNaiveTooSimple {public static final String INPUT=\"我爱你,妈妈;public static void main(String[]args)throws UnsupportedEncodingException {byte[]input=INPUT.getBytes(\"UNICODE\");for(int i=2;i;i+2){int result=((input[i]&0xff)*16*16)+(input[i+1]&0xff);System.out.print(\"&\"+result+;}}}

随机阅读

qrcode
访问手机版