这两天在项目中引入了Pushlet,用来解决Server Push的问题。 不过在使用的过程中,发现Java Client 向 Pushlet Servlet 发送中文内容出错的问题。之后将Pushlet源代码copy到工程目录下,打断点调试,终于找到了问题所在。 在这里将解决方法记录一下:
问题原因:
Pushlet ->Event 对象在做数据转url请求时没有做编码转换:
解决方法:
在ul.justobjects.pushlet.core.Event中找到 toQueryString()
方法,
添加ISO-8859-1 to UTF-8的转换代码:
public String toQueryString() {
String queryString = "";
String amp = "";
for (Iterator iter = getFieldNames(); iter.hasNext();) {
String nextAttrName = (String) iter.next();
String nextAttrValue = getField(nextAttrName);
//将 ISO-8859-1 转成 UTF-8
nextAttrValue = StringUtility.toUTF8(nextAttrValue);
queryString = queryString + amp + nextAttrName + "=" + nextAttrValue;
// After first add "&".
amp = "&";
}
return queryString;
}
ISO-8859-1 转 UTF-8 :
/**
* "ISO-8859-1"格式字符转换成"UTF-8"
* @param str "ISO-8859-1"格式字符
* @return "UTF-8"格式字符
*/
public static String toUTF8(String str) {
try {
str = new String(str.getBytes("ISO-8859-1"), "UTF-8");
} catch (UnsupportedEncodingException ex) {
ex.printStackTrace();
}
return str;
}
分享到:
相关推荐
这是自己用过的pushlet定时向页面发送消息的一个demo
服务器推 pushlet 服务器推 pushlet 服务器推 pushlet 服务器推 pushlet
java web开发中服务器推送pushlet.jar解决中文乱码
pushlet开发与应用
个人制作整理的pushlet白皮书中文参考文档。 目录: 1.介绍(Introduction) 3 2.动机(Motivation) 4 3.通知解决(Notification Solutions) 5 3.1轮询(Polling) 6 3.2服务器端回调(Server-side callbacks) 6 3.3 ...
pushlet白皮书pushlet白皮书pushlet白皮书pushlet白皮书pushlet白皮书
本文档详细讲述了pushlet的部署过程,包括中文乱码的解决办法,可以帮助人们更好的了解Pushlet和进行部署
找了好久资料,没有找到实例,自己参考网上写的实例,可用。
pushlet例子,Pushlet 是一个开源的 Comet 框架,Pushlet 使用了观察者模式:客户端发送请求,订阅感兴趣的事件;服务器端为每个客户端分配一个会话 ID 作为标记,事件源会把新产生的事件以多播的方式发送到订阅者的...
基于pushlet_chat技术的群聊实现 解决了中文乱码问题,支持中文用户名和中文内容的小例子,压缩文档里除测试工程外,还包括部署步骤和处理中文乱码的文档说明!
pushlet配置应用实例,看了之后就能简单应用pushlet实时推送数据
1.java服务端推送实例程序,经过自己测试运行是OK的; 2.使用pushlet-2.0.4.jar开源包; 3.解决了中文不能推送的问题; 4.带项目说明文档.
实现通过pushlet,进行点对点聊天功能。 包括: 在线用户上线的通知 离线的通知 来新消息时的通知 前台使用Ext ,后台使用pushlet /pushlet/WebRoot/index.jsp 页面主要包含几个部分。 Ext.PUSHLET_URL='...
NULL 博文链接:https://nowwondering.iteye.com/blog/1605158
Pushlet简单示例测试
实现通过pushlet,进行点对点聊天功能。 包括: 在线用户上线的通知 离线的通知 来新消息时的通知 前台使用Ext ,后台使用pushlet /pushlet/WebRoot/index.jsp 页面主要包含几个部分。 Ext.PUSHLET_URL='...
pushlet 所需夹包 和配置文件 ajax-pushlet-client.js pushlet-sessionid.jar sources.properties pushlet.properties
Pushlet 是一个开源的 Comet 框架,Pushlet 使用了观察者模式:客户端发送请求,订阅感兴趣的事件;服务器端为每个客户端分配一个会话 ID 作为标记,事件源会把新产生的事件以多播的方式发送到订阅者的事件队列里。 ...
Pushlet白皮书。希望对要了解Pushlet的同志们有所帮助
pushlet文档和项目