我是碰到这样一样情况,由于我使用了jQuery.getScript(),来进行跨域,不过遇到有些浏览器的编码编码不一致,导致乱码。
这样处理的好处是,避免了乱码的问题。
只是服务器端的代码,和网上的代码一样,不过我加了个

StringUtils.leftPad()

方法处理,这样就解决了每个字符都转化为四位的Unicode编码,在浏览器端用 unescape(blogLoginInfo.nicknameUnicode.replace(/\\/g,”\%”)); 就可以解码。
服务器端转码代码如下:

/**
 * 把字符转换成Unicode编码
 * @param str
 * @return
 */
  public static String toUnicode(final String str) {
    String result = "";
    for (int i = 0; i < str.length(); i++) {
      int charInt = str.charAt(i);
      result += "\\u" + StringUtils.leftPad(Integer.toHexString(charInt), 4, "0");
    }
    return result;
  }