最近做一个贴吧。获取帖子时用ajax返回json数据。。但由于发帖时一些符号。返回回时破环了json格式。求解决办法。笨人笨直接给能用的结果!如果用字符串替换。忘给出全面的替换方法。即使不管用户插入什么字符。都不会破坏json结果了。谢谢;

解决方案 »

  1.   

    内容用base64编码一下可以解决这个问题
      

  2.   

    比如 :String a="横线换成逗号-看看成功不。";
    String b=a.replaceAll("-",","); 
      

  3.   

    #2楼的思路可以考虑下,通过编码的方式屏蔽字符差异。如果单纯的用replace处理的话,因为内容的不确定和无规律性不好处理,也可以考虑使用正则
      

  4.   


    public String StrFilter(String str){
    String regEx = "[`~!@#$%^&*()]";//需要过滤的字符
    Pattern pattern = Pattern.compile(regEx);
    Matcher matcher = pattern.matcher(str);
    return matcher.replaceAll("").trim();
    }
      

  5.   

    hi,笨人觉得特殊字符与其直接替换掉不如转义更好点,
    因为帖子中可能本身就应该包含以下特殊字符,如书名<<>>,%百分号,"",等,所以还是转义可能更能贴近原来帖子的含义
    百度一下 特殊字符处理 很多方案 http://www.baidu.com/s?tn=baiduhome_pg&ie=utf-8&bs=json+%E8%BD%AC%E4%B9%89&f=3&rsv_bp=1&rsv_spt=1&wd=json+%E7%89%B9%E6%AE%8A%E5%AD%97%E7%AC%A6&rsv_sug3=2&rsv_sug4=32&oq=json+te&rsp=0&rsv_sug5=0&rsv_sug=0&rsv_sug2=0&inputT=3047
      

  6.   

    好吧 。直接用replaceAll 了。谁能给我写个 把字符串含有 英文下的  '  "  [  ]  {  } :  , 替换成 中文下的 ‘ “ 【 】 { } : ,  这分就是谁的了。
      

  7.   


    public static void main(String[] args) {
    String[] oldArray = { "'", "\"", "[", "]", "{", "}", ":", "," };
    String[] newArray = { "‘", "“", "【", "】", "{", "}", ":", "," };
    String content = " af'afas  asf\"adf  [fas  fads] fads {asdf  }afd :fa  asdf,";
    for(int i = 0; i < oldArray.length; i ++)
    content = content.replaceAll(Pattern.quote(oldArray[i]), newArray[i]);
    System.out.println(content);
    }不明白难点在哪?