jQuery MiniUI

标题: 乱码问题 [打印本页]

作者: feelsun    时间: 2013-1-9 14:04:50     标题: 乱码问题

很奇怪,同样的代码,XP系统和win7系统竟然不同

表单传到后台的数据



  1. var o = form.getData();
复制代码



后台处理
  1. ArrayList al=(ArrayList)JSON.Decode(new String(data.getBytes("ISO-8859-1"),"utf-8"));
复制代码

  1. public static Object Decode(String json) throws Exception{
  2.                 if (StringUtil.isNullOrEmpty(json)) return "";
  3.                 JSONDeserializer deserializer = new JSONDeserializer();
  4.         //        deserializer.use(String.class, new DateTransformer("yyyy-MM-dd'T'HH:mm:ss"));               
  5.         //        Object obj = deserializer.deserialize(new String(json.getBytes("ISO-8859-1"),"UTF-8"));
  6.                 Object obj = deserializer.deserialize(json);
  7.                 if(obj != null && obj.getClass() == String.class){
  8.                         return Decode(obj.toString());
  9.                 }
  10.                 return obj;
  11.         }
复制代码

XP系统会出现乱码
而 win7系统是好的

表格的行修改提交数据也是这样的,做不做ISO-8859-1处理2个系统得到的结果不同

作者: factory    时间: 2013-1-9 14:06:22

你要确保数据库,服务端,前台页面的编码一致。
作者: feelsun    时间: 2013-1-9 14:29:49

factory 发表于 2013-1-9 14:06
你要确保数据库,服务端,前台页面的编码一致。

肯定是一致的
作者: factory    时间: 2013-1-9 14:32:31

feelsun 发表于 2013-1-9 14:29
肯定是一致的

这个不清楚了,没碰到过这种情况。我们网上的demo都是XP,WIN7都正常的。
你去网上搜搜看,有没有解决方法
作者: minicooper    时间: 2013-7-31 17:46:35

factory 发表于 2013-1-9 14:32
这个不清楚了,没碰到过这种情况。我们网上的demo都是XP,WIN7都正常的。
你去网上搜搜看,有没有解决方 ...

通过ajax传过去的数据都是ISO-8859-1格式的,虽然页面和前后台都是UTF-8编码,但是不起作用,必须在接收到的json数据后转码才不是乱码的。如:JSON.Decode(new String(json.getBytes("ISO-8859-1"),"UTF-8"));




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2