我现在有一个字符串编码格式如下“限制进”是utf8编码,我想把它存到数据库里,存成utf8码对应的中文,弄了好长时间也没有存成功,请大家帮忙!我的想法是这样的:
String aaa = “限制进”;
aaa = aaa.replaceAll("&#x", "\\\\u");
把aaa存入数据库但是存入数据库变成了\u9650\u5236\u8FDB

解决方案 »

  1.   

    在server.xml中加上URIEncoding="UTF-8" 试试
      

  2.   

    utf-8对应的中文是这个格式么?
    以数据库这三个字为例
    utf-8是
    %E6%95%B0%E6%8D%AE%E5%BA%93
    unicode是
    \u6570\u636E\u5E93
      

  3.   

    但是存入数据库变成了\u9650\u5236\u8FDB这个应该是 unicode 编码
      

  4.   

    http://www.blogjava.net/leon/archive/2006/10/28/77846.html
    这篇文章里的方法可以把如"\\u9EC4"的String字符串转换成对应的汉字: "黄"范例:
    System.out.println(fromUnicode("\\u9EC4".toCharArray(), 0, 4, new char[100]));
      

  5.   

    领导,被你雷倒了
    String aaa = “限制进”;
    aaa = aaa.replaceAll("&#x", "\\\\u");你这么一替换不就是把 "&#x" 替换成了"\u"了吗?
      

  6.   

    你如果 期望的结果是\\u9650;\\u5236;\\u8FDB;那你不要用 正则replaceAll
    你用直接替换replace
      

  7.   

    对一些开源库的了解是很有必要的,不要认为 Struts, Spring, Hibernate 就是 Java 的全部了!import org.apache.commons.lang.StringEscapeUtils;public class Test {    public static void main(String[] args) {
            String str = "限制进";
            System.out.println(StringEscapeUtils.unescapeHtml(str));
        }
    }Apache Commons Lang 包(commons-lang-x.x.jar),这个包会被很多的开源项目所引用,在你的 classpath 下可能已经存在了!
      

  8.   

    把每个char分解出来,再new一个String不就行了么?
      

  9.   


    String aaa = "限制进";
    String[] arr = aaa.split(";");
    char[] carr = new char[arr.length];
    for (int i = 0; i < arr.length; i++)
    {
        carr[i] = (char)(Integer.parseInt(arr[i].substring(3)));
    }
    String result = new String(carr);