`
fantaxy025025
  • 浏览: 1279356 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

中文乱码_Tomcat_解决方案

阅读更多

缘由:

大凡做过几年开发的,尤其是与Web相关的,估计没有一个例外,都要碰到中文乱码问题。甚至连我们公司经验丰富的Website组都要在这个上面栽跟头。

最近要为CIS系统的UI增加些Tool功能,居然又碰到这个问题。

仔细检查,发现我已经遵守了防止中文乱码的铁律:前后端全部设置UTF-8格式。也就是说我的页面不论是php/html/jsp都已经设置UTF-8格式,服务端也设置了统一的格式UTF-8。

同时,按照我的测试印象,前两天本页面还没有发现这个问题,怎么今天就报错了呢?

 

经过一番google与测试,结果如下。

1. 前提遵守防止中文乱码的铁律:前后端全部设置UTF-8格式

2. Tomcat中,form提交需要用post,而get方法对中文依旧乱码

    我测试时为了利用get方法的方便,居然忘记了改回去。

3. 别的Server如Jetty等,需要测试和参考文档,一些细节请仔细读下面思考

 

java form submit 中文亂碼問題

這個問題陸續遇到幾次了,始終知其然而不知其所以然。這是最近一次的處理案例:

環境

OS: CentOS 5.2 (utf-8)

Database: MySQL 5 (utf-8)

Application server: Tomcat 6

網頁

<input type=text name=keyword>

程式

String keyword=request.getParameter(“keyword”);

網頁的 input 輸入中文 submit 後由以上程式碼接取,原本的中文都變成亂碼。解決的方法是改用以下的接取程式碼,將收到的字串重新編碼。

String keyword=new String(request.getParameter(“keyword”).getBytes(“iso8859-1″),”utf-8″);

Why

Tomcat 在處理 GET、POST 參數時預設是採用 ISO-8859-1 編碼,請參考此 網址 URIEncoding 部份的說明,所以第2 段程式才會 work,請隨著您的作業系統及資料庫編碼設定,調整接取參數的程式碼。

Browser

以上的例子是送一個 keyword 到 tomcat web application 查詢資料,後來出現另一個問題,從 Firefox 送出中文的 keyword 可以正確的查到資料,Explorer 卻查不到,經過測試和查詢相關資料後發現,從 Explorer 送出 keyword 前要用 javascript encodeURIComponent() 編碼後再送出才會正常查到資料。

2008.11.27 加註

上面情形是發生在未指定 form 的 method,根據規格預設會以 get 傳送資料,Tomcat 的文件也沒有說明 URIEncoding 是會針對 get 或 post method 作處理。今天又遇到 form submit 中文亂碼問題,這次也不用重新編碼參數了,直接把 form method 設定 post,問題就解決了。看來 submit 的 form 有中文時,用 post method 會是比較好的選擇。

 

 

 

分享到:
评论

相关推荐

    解决Tomcat中文乱码

    ### 解决Tomcat中文乱码问题 在使用Tomcat服务器部署Web应用时,经常会遇到中文乱码的问题。本文将详细探讨这一现象的原因,并提供一种有效的解决方案。 #### 问题背景 在Tomcat环境下运行Web应用程序时,如果...

    tomcat get提交中文乱码解决方案

    tomcat get提交中文乱码解决方案,修改tomcat server.xml 中以下为

    Docker容器部署tomcat出现中文乱码.docx

    Docker 容器中 Tomcat 部署出现中文乱码解决方案 在 Docker 容器中部署 Tomcat 时,可能会遇到中文乱码的问题,这是由于 Docker 容器的 locale 设置导致的。在本文中,我们将介绍如何解决这个问题。 什么是 locale...

    Tomcat和weblogic中文乱码问题解决方案

    Tomcat和WebLogic中文乱码问题解决方案 在 Java Web 开发中,中文乱码问题一直是困扰开发者的主要问题之一。 Tomcat 和 WebLogic 是两个常用的 web 服务器,都是支持 Servlet 和 JSP 的。然而,在使用这些服务器时...

    关于tomcat乱码以及tomcat jvm 内存溢出问题的解决方案和理论

    标题中的“关于tomcat乱码以及tomcat jvm 内存溢出问题的解决方案和理论”涉及了两个关键的IT概念:Tomcat服务器的字符编码问题和Java虚拟机(JVM)内存管理的问题。让我们逐一深入探讨这两个主题。 首先,我们来...

    tomcat 下catalina.out 日志乱码问题处理

    针对这个问题,给出的解决方案是在Tomcat的启动脚本`bin/catalina.sh`中添加以下配置: ```bash JAVA_OPTS="-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8" ``` 这里的`JAVA_OPTS`环境变量用于设置Java虚拟机...

    修改Tomcat默认编码消除get方式传递参数出现中文乱码

    #### 解决方案:修改Tomcat配置 要解决这个问题,关键在于修改Tomcat的默认字符编码,使其能够正确识别并处理中文字符。修改的方式是在Tomcat的`Server.xml`配置文件中的`&lt;Connector&gt;`元素下添加或修改`URIEncoding...

    解决tomcat中文乱码问题.doc

    本文将详细探讨几种常见的乱码场景及其解决方案。 #### 一、JSP页面上的中文显示为乱码 **问题描述**:在JSP页面中直接输入中文时,页面上显示的是乱码。 **原因分析**:JSP页面被编译成Java文件的过程中,默认...

    linux 部署系统jdk6 tomcat6安装配置 oracle11g中文显示乱码

    ### Linux部署系统JDK6与Tomcat6安装配置及Oracle11g中文显示乱码解决方案 #### 一、概述 本文将详细介绍如何在Linux环境下安装配置JDK6、Tomcat6以及解决Oracle11g数据库中文显示乱码的问题。整个过程涵盖了从...

    解决tomcat中文乱码问题

    有两种解决方案: 1. **修改Tomcat配置**:在`server.xml`文件的`Connector`标签中,设置`useBodyEncodingForURI="true"`,或者直接指定`URIEncoding`属性为具体的编码格式,如`URIEncoding="UTF-8"`。 2. **手动...

    JSP乱码 N种解决方案

    本文将深入探讨“JSP乱码”的多种解决方案,并提供实用的解决策略。 1. **理解字符编码的基本概念** - 字符编码是计算机对文字进行存储和处理的标准,常见的有ASCII、GBK、UTF-8等。 - JSP页面默认使用ISO-8859-1...

    tomcat与servlet乱码解决办法

    ### Tomcat与Servlet乱码问题解析及解决方案 #### 一、引言 在Web开发过程中,经常遇到的一个问题就是字符编码的问题,特别是在处理中文字符时,如果编码设置不当,很容易出现乱码的情况。本文主要围绕Tomcat服务器...

    Linux下使用Xshell查看Tomcat实时日志中文乱码解决方案.docx

    Linux 下使用 Xshell 查看 Tomcat 实时日志中文乱码解决方案 在 Linux 环境下,当使用 Xshell 查看 Tomcat 实时日志时,可能会出现中文乱码的问题。这篇文章将介绍解决这个问题的方法,包括配置 i18n 系统文件和...

    Tomcat 在IE中下载rar文件为乱码解决方案

    ### Tomcat 在IE中下载rar文件为乱码解决方案 #### 问题背景 在使用Tomcat作为Web服务器的应用程序中,可能会遇到一个常见的问题:当用户尝试通过Internet Explorer(IE)浏览器下载rar格式的文件时,文件会被误...

    配置web-xml解决中文乱码问题.pdf

    首先,需要确定中文乱码问题不是由浏览器引起的,然后讨论了 Tomcat 服务器配置和数据库 bean 配置中的一些解决方案。 一、浏览器配置问题 在讨论解决方案之前,需要确定中文乱码问题不是由浏览器引起的。在使用 ...

    Java_EE中文乱码问题解决方案.ppt

    本方案将详细解析这一问题,并提供一系列解决方案。 首先,我们需要理解中文乱码出现的原因。当文件在编辑和保存时使用了一种编码(例如GBK),而文件被查看或处理时采用的是另一种编码(如ISO-8859-1)时,就会...

    系统中文乱码解决方案

    ### 系统中文乱码解决方案 #### 一、引言 在软件开发过程中,中文乱码问题时常出现,尤其在数据库交互与前端展示时更为常见。本文将详细探讨解决中文乱码的方法,包括数据库编码设置、服务器配置、工程编码及程序...

    tomcat5中文问题完美解决

    以下是对该问题的深入解析及解决方案。 **问题描述:** 1. 当表单数据通过`REQUEST.getParameter("XXX")`获取时,返回的字符串可能出现乱码或显示为问号。 2. 使用URL直接提交的GET请求,如`...

    windows、windows server系统下tomcat 乱码解决方案(包含注册成系统服务)

    ### Windows及Windows Server环境下Tomcat乱码解决方案与注册为系统服务方法 #### 一、引言 在实际项目开发过程中,经常会遇到Tomcat在Windows或Windows Server系统下启动时出现乱码的问题,尤其是在不通过开发...

Global site tag (gtag.js) - Google Analytics