最近不太忙,搞了一下一直另我头疼的乱码问题(如有错误,请指教)。总结如下:
1.以POST方法提交的表单数据中有中文字符:
和POST提交有关:JSP页面中的contentType中的charset属性、web容器接受参数时的解码、程序中
的解码方式。
发送:表单参数值会通过request body发送给服务器,此时网页会根据contentType中的charset属性
对参数进行编码(如:utf8),然后发送个web容器。
web容器接受:web容器采用一定的解码方式接受客户端发送过来的数据,在tomcat中默认时ISO-885
9-1。
程序中解码方式:如果不产生乱码,我们必须将服务器接受的ISO-8859-1的编码还原为浏览器中的编
码。tomact中,我们需要将ISO-8859-1解码为和浏览器发送时一样的编码。
整个过程为:浏览器(如:gbk)-->web容器(如:tomcat,使用ISO-8859-1接受)-->程序中将
ISO-8859-1转换为gbk,这样就不会有乱码了。
2.以GET方式提交的表单中含有中文字符:
使用GET方式提交时,表单会作为url的一部分进行提交,浏览器会对url encode,然后发送给服务器
对于中文IE,对于中文浏览器,编码一般为UTF-8或GBK(不太确定)。
和GET提交有关:浏览器URL编码(不知道怎么设置)、web容器接受时解码()、程序中的解码方式,
此外还有两个参数,就时server.XML中的URIEncoding和useBodyEncodingForURI。
发送:参数的编码是根据浏览器来决定的,具体怎么搞还没搞明白。
web容器接受:默认情况下采用ISO-8859-1接受,但是可以通过URIEncoding和useBodyEncodingForURI更改,useBodyEncodingForURI如果为true,表示将采用charset设置编码参数,如
不设置,默认为fasle。URIEncoding是用来直接设置解码方式,但是好像不起作用(不太明白,高手指教)。
程序中的解码方式:只要是解码成和浏览器的一样就不会出现乱码。
还有就是关于ajax提交的问题,如果是get提交,方法和表单的get提交一样,但是,如果ajax使用post
提交,使用的编码就不是charset的值了,而是使用utf-8,所以要想在服务器端不乱码,必选也使用utf-8。
分享到:
相关推荐
### Servlet + Tomcat 中文乱码问题解析及解决方案 #### 一、中文乱码问题概述 在使用Servlet和Tomcat进行Web开发时,经常会遇到中文乱码的问题。这主要是因为客户端(如浏览器)与服务器之间使用的字符编码不一致...
在这个"ajax+jsp+servlet 中文解决方法"的示例中,开发者遇到了在使用Ajax进行数据交互时中文乱码的问题。中文乱码通常是由字符编码不一致导致的,特别是在跨平台或跨浏览器通信时。以下是一些关于如何解决这个问题...
总结来说,解决Ajax URI乱码问题的关键在于理解和匹配浏览器的编码行为,并在服务器端进行相应的配置。通过以上策略,可以有效地解决大部分浏览器的乱码问题,实现更好的跨浏览器兼容性。然而,对于特定情况,可能还...
总的来说,解决Ajax传值到Servlet的乱码问题需要确保每个环节的编码设置一致,从JSP页面到Ajax请求,再到Servlet的接收和响应。只有这样,才能保证数据在整个传输过程中不发生乱码。记得在排查问题时,逐步检查每个...
总的来说,解决Ajax乱码问题的关键在于理解字符编码的工作原理,确保数据在整个传输过程中的编码与解码一致性,以及正确设置服务器和客户端的编码设置。在实际应用中,还应考虑跨平台和跨浏览器的兼容性,以确保解决...
### Java与JSP文件乱码问题综合解析 在软件开发过程中,尤其是涉及到国际化或中文处理时,文件编码问题常导致“乱码”现象,严重影响了程序的正常运行和用户体验。本文将深入探讨Java与JSP文件乱码的问题,提供一...
综上所述,解决JSP中Ajax GET请求的中文乱码问题需要从服务器配置、Servlet处理、JSP页面编码和Ajax请求等多个角度综合考虑,并进行相应的调整。通过这些步骤,可以有效地避免并解决中文乱码问题,保证数据传输的...
5. **JSP/Servlet配置**:在Web应用中,JSP页面和Servlet容器的默认编码设置也可能导致乱码。可以在web.xml中设置`<filter>`和`<filter-mapping>`来处理请求和响应的编码,或者在JSP页面中使用`;charset=UTF-8" %>`...
在IT行业中,Web开发是至关重要的领域,而`jsp`(JavaServer Pages)和`servlet`是Java Web开发中的核心技术,常用于构建动态网站。本项目以"jsp+servlet实现增删改查"为主题,旨在利用这两者实现CRUD(Create、Read...
#### 七、Web应用乱码问题 - **常见问题**:中文或其他非英文字符在Web应用中的显示问题。 - **解决方案**:通过设置正确的字符集编码(如UTF-8),并在服务器、客户端和数据库之间保持一致的编码设置。 #### 八、...
总结来说,解决Struts框架下Ajax发送中文乱码问题的关键在于: 1. 确保Ajax请求时设置正确的`Content-Type`,以UTF-8编码发送数据。 2. 在Struts配置文件中配置`CharacterEncodingFilter`或在Action中手动设置请求...
JSP中的AJAX GET请求的中文乱码问题主要是由于URL编码格式不匹配导致的。以下是一些解决此问题的关键点和步骤: 1. **URL编码格式**: 默认情况下,Tomcat服务器使用ISO-8859-1编码处理URL,这是因为在`server.xml...
在Java Web开发中,JSP乱码和AJAX的应用是两个常见的主题。本文将深入探讨这两个话题,提供解决方案,并给出详尽的实践指导。 首先,让我们来解决JSP项目的乱码问题。乱码通常是由于编码不一致导致的,尤其是在处理...
在描述中提到的“AJAX和Java”示例,可能是AJAX调用Java Servlet或JSP页面,通过传递参数来执行特定的操作。例如,用户在前端触发一个事件,如按钮点击,此时JavaScript的AJAX函数会被调用,向服务器发送请求,...
### Java开发乱码问题处理大全:精通乱码处理,提升专业技能 在Java开发中,乱码问题是开发者常遇到的挑战之一,尤其是在处理多语言、跨平台应用时更为显著。本文将深入探讨Java开发中常见的乱码问题及其解决策略,...
总结来说,要解决JSP中AJAX GET请求的中文乱码问题,需要从服务器配置和代码实现两方面入手。服务器配置方面,需要设置Connector节点的URIEncoding属性为合适的字符编码。代码实现方面,则需要注意在获取GET请求参数...
JSP (Java Server Pages) 和 Servlet 是 Java Web 开发中的核心技术,主要用于构建动态网页。它们都是基于 Java 平台,提供了一种便捷的方式来处理用户请求并生成响应。 1、**Servlet 架构**: Servlet 是服务器端...