我希望 JSP 页面支持 UTF8 数据我可以使用 struts2 和 jsp 进行本地化,但是当我在 jsp 上以本地语言从用户那里获取数据时,信息不会以正确的格式运行,它正在传递一些抓取的数据.这是我的jsp代码:------
I want JSP pages to support UTF8 data I am able to localization with struts2 and jsp but when I take data from user on jsp in local language the information is not going in action in proper format it is passing some grabled data. Here is my jsp code :------
<%@ page language="java" contentType="text/plain; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@page import="java.util.*"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/plain; charset=UTF-8">
<title><s:text name="global.addnewcustomer"/></title>
<script type="text/javascript" src="http://localhost:9090/AMCMSWeb/basic/validation/Login.js">
</script>
</head>
<body>
<h2 align="center"><s:text name="global.fillinfo"/></h2>
<s:form action="addcustomeraction" method="post" acceptcharset="UTF-8">
<table align="center" border="1" bgcolor="pink" bordercolor="gray">
<tr>
<td><s:text name="global.custName"/></td>
<td>:</td>
<td><s:textfield name="custName" size="15"></s:textfield></td>
<td><s:text name="global.custMidleName"/></td><td>:</td><td><s:textfield name="custMidleName" size="15"></s:textfield></td>
<td><s:text name="global.custLastName"/></td><td>:</td><td><s:textfield name="custLastName" size="15"></s:textfield></td>
</tr>
<tr>
<td><s:text name="global.mobileNo"/></td><td>:</td><td><s:textfield name="mobileNo" size="15"></s:textfield></td>
<td><s:text name="global.phoneNo"/></td><td>:</td><td><s:textfield name="phoneNo" size="15"></s:textfield></td>
<td><s:text name="global.toDate"/> <s:label>(mmm/dd/yyyy)</s:label></td><td>:</td><td><s:textfield name="toDate" size="15" readonly="true">
<s:param name="value">
<s:date name="new java.util.Date()" format="MM/dd/yyyy"/>
</s:param>
</s:textfield></td>
</tr>
<tr>
<td><s:text name="global.atPost"/></td><td>:</td><td><s:textarea name="atPost" cols="15" rows="3"></s:textarea></td>
</tr>
<tr>
<td><s:text name="global.taluka"/></td><td>:</td><td><s:select list="#{'Miraj':'Miraj','Haveli':'Haveli'}" name="taluka" headerKey="-1" headerValue="Select Taluka" ></s:select></td>
<td><s:text name="global.district"/></td><td>:</td><td><s:select list="#{'Sangli':'Sangli','Pune':'Pune'}" name="district" headerKey="-1" headerValue="Select District"></s:select></td>
</tr>
<tr>
<td><s:text name="global.state"/></td>
<td>:</td>
<td><s:select list="#{'Maharashtra':'Maharashtra','Karnataka':'Karnataka'}" name="state" headerKey="-1" headerValue="Select State" onchange="list_districts()"></s:select></td>
<td><s:text name="global.country"/></td><td>:</td><td><s:select list="#{'India':'India'}" name="country" headerKey="-1" headerValue="Select Country" ></s:select></td>
</tr>
<tr>
<td><s:text name="global.pinCode"/></td>
<td>:</td>
<td><s:textfield name="pinCode" type="" size="15"></s:textfield></td>
</tr>
</table>
<table align="center" >
<tr>
<td><s:submit name="s" key="global.proceed"/></td>
<td><input type="button" name="cancel" value=" X "></td>
</tr>
</table>
</s:form>
</body>
</html>
页面(或 web.xml 中)指定的字符编码应用于 HTTP 通信的以下阶段:
The character encoding specified in the page (or in the web.xml) is applied to the following phases of an HTTP communication:
应用服务器是阶段 2 的唯一负责人.
The Application Server is the only responsible for the phase 2.
您需要查找您的特定应用程序服务器设置,更改默认字符编码(很容易成为 ISO-8859-1
),并将其更改为在 UTF-8
.
You need to look for your specific application server settings, to alter the default character encoding (that could easily be ISO-8859-1
), and alter it to work in UTF-8
.
例如,在 Tomcat 中,您需要通过将 URIEncoding="UTF-8"
参数添加到 来编辑
,例如来自conf/server.xml
文件><连接器>
For example, in Tomcat you would need to edit the conf/server.xml
file, by adding the URIEncoding="UTF-8"
parameter to the <Connector>
, for example from
<Connector port="8090" />
到
<Connector port="8090" URIEncoding="UTF-8"/>
在 Apache Wiki 中有一个很好的检查清单,以确保您的所有组件都在 UTF-8 中运行:
In the Apache Wiki there is a nice list of things to check to make sure all your components are running in UTF-8:
您有什么建议可以让一切正常运行?(如何使用 UTF-8无处不在).
使用 UTF-8 作为您对所有内容的字符编码是一个安全的选择.这应该适用于几乎所有情况.
Using UTF-8 as your character encoding for everything is a safe bet. This should work for pretty much every situation.
为了完全切换到使用 UTF-8,您需要使以下更改:
In order to completely switch to using UTF-8, you need to make the following changes:
<%@page contentType="text/html; charset=UTF-8" %>
对于通常的 JSP 页面和 <jsp:directive.pagecontentType="text/html; charset=UTF-8"/>
用于 XML 语法的页面(又名 JSP 文档).response.setContentType("text/html; charset=UTF-8")
或response.setCharacterEncoding("UTF-8")
.<%@page contentType="text/html; charset=UTF-8" %>
for the usual JSP pages and <jsp:directive.page
contentType="text/html; charset=UTF-8" />
for the pages in XML syntax
(aka JSP Documents).response.setContentType("text/html; charset=UTF-8")
or
response.setCharacterEncoding("UTF-8")
.这篇关于jsp 未以正确格式传递 UTF-8 数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!