黑马程序员技术交流社区

标题: 怎么把Unicode编码转换成汉字,求大牛们赶紧出手... [打印本页]

作者: 韩伟    时间: 2012-7-24 15:28
标题: 怎么把Unicode编码转换成汉字,求大牛们赶紧出手...
有这样一段字符串,String str = 本书共分三个部分内容{uFF0C}{u4ECB}{u7ECD}{u4E86}{u9AD8}{u7B49}{u6570}{u5B66};
后面大括号中是unicode编码,怎么把它们转换成汉字,并且传递给 str ???
作者: 梁小波    时间: 2012-7-24 16:27
  1. public static void main(String args[])
  2.         {
  3.                 String str="\uFF0C\u4ECB\u7ECD\u4E86\u9AD8\u7B49\u6570\u5B66";
  4.                 System.out.println(str);
  5.         }
复制代码
{:soso_e153:}是高数!吓死我了。。。。




作者: 李菁    时间: 2012-7-24 19:12
String str1=new String(str.getBytes("unicode"),"gbk");
str是你想要转换编码方式的字符串
str1是转换成gbk编码方式的字符串
作者: 韩伟    时间: 2012-7-25 08:33
看来大家是理解错了,str里面的是字符串,{uFBCA}也是字符串,如果不把它转换成unicode类型,是无法实现转换的。而且我要处理的文件有十多万行,更不可能把它们手动敲进去
作者: 肖琦    时间: 2012-7-25 10:44

  1. public class Test{
  2. public static void main(String[] args) {
  3.   String str = "本书共分三个部分内容{uFF0C}{u4ECB}{u7ECD}{u4E86}{u9AD8}{u7B49}{u6570}{u5B66}";
  4.   String[] parts = str.split("[url=file://\\{|\\}\\{|\\]\\{|\\}\\{|\\[/url]}");
  5.   StringBuffer sb = new StringBuffer();
  6.   for (int i = 0; i < parts.length; i++) {
  7.    if(parts[i].matches("^u[0-9A-F]{4}$")){
  8.     sb.append((char)Integer.valueOf(parts[i].substring(1), 16).intValue());
  9.    }else{
  10.     sb.append(parts[i]);
  11.    }
  12.   }
  13.   System.out.println(sb);
  14.   //输出结果:
  15.   //本书共分三个部分内容,介绍了高等数学
  16. }
  17. }

复制代码

作者: 肖琦    时间: 2012-7-25 10:51
系统好像是把我的代码改啦。
以上 str.split() 方法中的参数是 \\{|\\}\\{|\\}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2