jQuery MiniUI

 找回密码
 立即注册
查看: 2385|回复: 4
打印 上一主题 下一主题

乱码问题 [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 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个系统得到的结果不同

Rank: 8Rank: 8

沙发
发表于 2013-1-9 14:06:22 |只看该作者
你要确保数据库,服务端,前台页面的编码一致。

Rank: 3Rank: 3

板凳
发表于 2013-1-9 14:29:49 |只看该作者
factory 发表于 2013-1-9 14:06
你要确保数据库,服务端,前台页面的编码一致。

肯定是一致的

Rank: 8Rank: 8

地板
发表于 2013-1-9 14:32:31 |只看该作者
feelsun 发表于 2013-1-9 14:29
肯定是一致的

这个不清楚了,没碰到过这种情况。我们网上的demo都是XP,WIN7都正常的。
你去网上搜搜看,有没有解决方法

Rank: 1

5#
发表于 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"));

Archiver|普加软件

GMT+8, 2024-11-30 08:52 , Processed in 1.045742 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部