`
witcheryne
  • 浏览: 1100308 次
  • 性别: 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
分享到:
评论
发表评论

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

相关推荐

    Pushlet点对点发送消息

    在"Pushlet点对点发送消息"这个主题中,我们可以深入探讨以下几个关键知识点: 1. **Pushlet框架**:Pushlet是Apache Cocoon项目的一部分,它提供了一种基于HTTP长连接的推送机制。Pushlet使用了Servlet和Java...

    pushlet定时向页面发送消息demo

    这个"pushlet定时向页面发送消息demo"是一个实例,展示了如何使用Pushlet库来实现定时向用户页面发送更新信息。 首先,理解Pushlet的基本工作原理。Pushlet采用了一个叫做Comet的技术,Comet是长连接的一种实现方式...

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

    本实例将介绍如何使用Pushlet实现服务端推送,并解决中文推送时出现的问题。 首先,我们来看Pushlet的基本原理。Pushlet基于Servlet和JSP技术,通过HTTP连接保持来实现实时通信。当客户端(浏览器)与服务器建立...

    pushlet 之 Pushlet使用手把手实例

    Pushlet 是由Caucho公司开发的,其核心思想是基于HTTP长连接的服务器推送,解决了传统HTTP协议中客户端必须发起请求才能获取数据的问题。Pushlet框架包括服务器端组件和客户端组件,通过简单的API和协议,使得开发者...

    pushlet

    Pushlet的核心组件是Pushlet Server和Pushlet Client。Pushlet Server作为服务端,接收并处理客户端的连接,当有新的数据可用时,会主动将数据推送到已经建立连接的客户端。Pushlet Client则是在用户端运行的程序,...

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

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

    服务器推送pushlet讲解

    分析这个文件可以帮助你更好地理解和使用Pushlet框架,例如,你可以找到服务器如何处理推送事件,客户端如何建立连接,以及如何调试和解决问题的线索。 总之,Pushlet作为Comet的一种实现,提供了高效且灵活的...

    pushlet jar包下载

    服务器推 pushlet 服务器推 pushlet 服务器推 pushlet 服务器推 pushlet

    java web开发中服务器推送pushlet.jar解决中文乱码

    java web开发中服务器推送pushlet.jar解决中文乱码

    pushlet简单配置应用

    事件源是实现了`EventSource`接口的类,它们负责生成和发送事件到客户端。 3. **消息源配置**:在`sources.properties`中,你需要列出所有可用的消息源。这些源在服务器启动时会被自动加载并激活。例如,配置文件中...

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

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

    pushlet文档和项目

    Pushlet项目是由Peter Mularien开发的,它提供了一个简单、轻量级的解决方案,允许服务器端主动向浏览器或其他客户端应用程序发送数据,而无需客户端不断地发起HTTP请求(即长轮询或短轮询)。 在Pushlet框架中,...

    pushlet实现简单的用户聊天

    总之,Pushlet技术为实时通信提供了一种高效且灵活的解决方案,特别适合需要实时更新数据的场景,如在线聊天、股票行情、游戏等。通过学习和实践"pushlet实现简单的用户聊天",开发者可以掌握这种技术,并将其应用于...

    comet 框架 之 pushlet

    总的来说,Comet框架的Pushlet实现是一种高效的服务器推送技术,它通过持久化连接解决了传统Web应用实时性不强的问题,对于需要实时数据更新的应用场景具有显著的优势。开发者可以利用Pushlet轻松构建出实时交互的...

    pushlet服务器推技术例子

    7. **安全性**:在实际应用中,Pushlet需要考虑安全性问题,如身份验证、授权和加密通信等,以防止未授权访问和数据泄露。 通过上述机制,Pushlet服务器推技术实例能够实现高效的实时通信,尤其适用于需要实时交互...

    pushlet 和comet 资料介绍

    Pushlet是Comet技术的一种具体实现,它们都旨在解决Web应用中的实时性问题。在服务器端,Pushlet使用`EventSource`和`EventSourceManager`来管理和处理事件,`EventSource`实现了`Runnable`接口,可以在多线程环境中...

    pushlet例子

    总结来说,Pushlet是早期服务器推送技术的一个实例,它为Web实时通信提供了一个解决方案,但随着技术的发展,现在有更多的选择,如WebSocket和HTTP/2 Server Push,它们在性能和兼容性上都有所改进。

    Pushlet简单示例测试

    Pushlet是一种基于Java的实时数据推送技术,它允许服务器向客户端主动推送数据,而无需客户端持续不断地轮询请求。在Web应用中,Pushlet能够显著提高用户体验,因为它减少了延迟并优化了服务器资源的使用。本示例...

    pushlet 扩充,sessionid 采用userid

    标题中的"pushlet 扩充,sessionid 采用userid"涉及到的是一个实时通信技术的应用,Pushlet 是一种基于服务器推送(Server-Sent Events, SSE)的技术,它允许服务器主动向客户端(通常是Web浏览器)发送数据,而不是...

Global site tag (gtag.js) - Google Analytics