老鸟进,问个字符集转码的问题 如何将这个以下字符串(unicode字符集)String string = "\\" + "u97e9" + "\\" + "u56fd";转换成对应的中文显示(utf-8字符集)?求解! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 u97e9==>String str = "\\" + "u97e9" + "\\" + "u56fd"; new String(str.getBytes("UTF-8")); byte[] b = new byte[] {(byte)'\u97e9',(byte)'\u56fd'}; System.out.println(new String(b)); 直接计算 String str="97e956fd"; StringBuffer sb=new StringBuffer(); for(int i=0;i<str.length()/4;i++) { int j=Integer.parseInt(str.substring(i*4,i*4+4),16); sb.append((char)j); } System.out.println(sb); 答:参考代码如下: public static String convertUTF8(String utfString) throws UnsupportedEncodingException { StringBuilder sb = new StringBuilder(); int i=-1; int pos=0; while((i=utfString.indexOf("\\u",pos))!=-1) { sb.append(utfString.substring(pos,i)); if(i+5<utfString.length()) { pos=i+6; sb.append((char)Integer.parseInt(utfString.substring(i+2,i+6),16)); }//if }//while String s= sb.toString(); return new String(s.getBytes("UTF-8")); }//用法:String str = "\\" + "u97e9aa" + "\\" + "u56fdbb"; //String utf8str=convertUTF8(str); 答:另外见贴:http://topic.csdn.net/u/20080424/19/c2fce6b0-29ce-4771-a779-acf9d8e75cd3.html 答:对不起。代码漏了一句。补上:public static String convertUTF8(String utfString) throws UnsupportedEncodingException { StringBuilder sb = new StringBuilder(); int i=-1; int pos=0; while((i=utfString.indexOf("\\u",pos))!=-1) { sb.append(utfString.substring(pos,i)); if(i+5<utfString.length()) { pos=i+6; sb.append((char)Integer.parseInt(utfString.substring(i+2,i+6),16)); }//if }//while sb.append(utfString.substring(pos)); String s=sb.toString(); return new String(s.getBytes("UTF-8")); }用法: String str = "aa\\" + "u97e9aabb" + "\\" + "u56fdcc"; String utf8str=convertUTF8(str); String str = "\\" + "u97e9" + "\\" + "u56fd"; java.util.regex.Pattern p = java.util.regex.Pattern.compile("\\\\u(\\w{4})");java.util.regex.Matcher m = p.matcher(str);while(m.find()) System.out.println((char)Integer.valueOf(m.group(1), 16).intValue());怎么是“韩国”啊…… java中两个线程如何判定一个线程是否已经执行 网页打不开总是变成下载界面 请问协变类型是什么意思?在think in java4中看到的`~~ 绘图问题 如何取得一个类中的静态成员的值? 请教文件问题 关于贪心算法的问题 JAVA中查找关于字符串查找的函数 applet中如何把TextField的值赋给char类型的变量? 有个很难的问题请教大神!!!急急急急! hibernate影射的问题 请教 怎么textarea或其他文本控件中实现高亮显示文本?
==>
String str = "\\" + "u97e9" + "\\" + "u56fd";
new String(str.getBytes("UTF-8"));
byte[] b = new byte[] {(byte)'\u97e9',(byte)'\u56fd'};
System.out.println(new String(b));
StringBuffer sb=new StringBuffer();
for(int i=0;i<str.length()/4;i++)
{
int j=Integer.parseInt(str.substring(i*4,i*4+4),16);
sb.append((char)j);
}
System.out.println(sb);
{
StringBuilder sb = new StringBuilder();
int i=-1;
int pos=0;
while((i=utfString.indexOf("\\u",pos))!=-1)
{
sb.append(utfString.substring(pos,i));
if(i+5<utfString.length())
{
pos=i+6;
sb.append((char)Integer.parseInt(utfString.substring(i+2,i+6),16));
}//if
}//while
String s= sb.toString();
return new String(s.getBytes("UTF-8"));
}
//用法:String str = "\\" + "u97e9aa" + "\\" + "u56fdbb";
//String utf8str=convertUTF8(str);
{
StringBuilder sb = new StringBuilder();
int i=-1;
int pos=0;
while((i=utfString.indexOf("\\u",pos))!=-1)
{
sb.append(utfString.substring(pos,i));
if(i+5<utfString.length())
{
pos=i+6;
sb.append((char)Integer.parseInt(utfString.substring(i+2,i+6),16));
}//if
}//while
sb.append(utfString.substring(pos));
String s=sb.toString();
return new String(s.getBytes("UTF-8"));
}用法: String str = "aa\\" + "u97e9aabb" + "\\" + "u56fdcc";
String utf8str=convertUTF8(str);
String str = "\\" + "u97e9" + "\\" + "u56fd";
java.util.regex.Pattern p = java.util.regex.Pattern.compile("\\\\u(\\w{4})");
java.util.regex.Matcher m = p.matcher(str);
while(m.find())
System.out.println((char)Integer.valueOf(m.group(1), 16).intValue());
怎么是“韩国”啊……