`
witcheryne
  • 浏览: 1101813 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

解决Pushlet发送中文问题

阅读更多

        这两天在项目中引入了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;
}

 

 

 

 

 

0
5
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    java服务端推送实例-pushlet-及中文问题

    3. 在发送中文数据时,确保数据已经被正确地编码为字节流,然后再传递给Pushlet进行推送。 在提供的项目说明文档中,应当包含了具体的配置和代码示例,指导如何搭建环境,创建Pushlet服务端和客户端,以及如何处理...

    pushlet使用说明(包括中文乱码)

    Pushlet 是一个基于 Comet ...总的来说,Pushlet 提供了一个高效且易于集成的解决方案,用于实现服务器端到客户端的数据实时推送。通过正确配置和理解其工作原理,你可以有效地利用 Pushlet 构建实时互动的 Web 应用。

    基于pushlet_chat技术的群聊实现 解决了中文乱码问题

    【基于Pushlet_Chat技术的群聊实现及中文乱码问题解决方案】 Pushlet_Chat是一种实时通信技术,常用于构建即时消息系统(IM),尤其在B/S架构中广泛应用。它基于HTTP长连接,通过服务器向客户端推送数据,实现了低...

    Pushlet白皮书

    为了实现服务器到客户端的通知,**Pushlet**提出了几种解决方案: 1. **轮询(Polling)**:客户端定期向服务器发起请求以检查是否有新的数据。这是一种简单的实现方式,但它增加了网络流量,并可能导致较高的延迟。 ...

    pushlet java 消息实时推送

    通过分析这个项目源码,我们可以深入理解Pushlet的工作原理,学习如何在Java中实现消息推送,并解决实际应用中的中文字符处理问题。 总的来说,Pushlet Java 消息实时推送实例是一个很好的学习资源,它不仅展示了...

    pushlet的笔记

    - **Pushlet的二次开发**:《(zt)Pushlet的二次开发(二).htm》和《(zt)Pushlet的二次开发(三).htm》是关于如何扩展和定制Pushlet的教程,涵盖了可能遇到的问题和解决方案,为有经验的开发者提供了进一步的实践指导...

Global site tag (gtag.js) - Google Analytics