Eclipse IDE中eclipse中jsp页面的persian编码(utf-8)

时间:2011-08-24 23:16:25

标签: jsp character-encoding

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8"%>
<!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/html; charset=UTF-8">
    </head>
    <body>
        <form action="index.jsp" >
            <input type="text" name="txt">
            <input type="submit" name="btn" value="Enter">
        </form>
        <%if (request.getParameter("txt")!=null) out.print(request.getParameter("txt")); %>
    </body>
</html>

加载此页面并输入像Sasan这样的拉丁字时,它会重新显示Sasan,这是正常的。 但是当输入像ساسان这样的波斯语单词时,它会重新显示سÙاÙ而不是ساسان

这是如何引起的?如何解决?

2 个答案:

答案 0 :(得分:0)

您的表单正在发送GET请求。包含GET查询字符串的整个请求URI由servletcontainer处理。您需要在servletcontainer配置中设置请求URI编码。目前还不清楚你正在使用哪一个,但是在例如Tomcat的情况下,你需要打开/conf/server.xml,找到<Connector>元素并为其添加URIEncoding属性,其值为{ {1}}。

UTF-8

其他servletcontainer有自己的配置设置。

请注意,当您发送POST请求时,servlet API会处理整个请求正文。在获得第一个参数之前,您需要按<Connector ... URIEncoding="UTF-8"> 设置请求正文编码。

ServletRequest#setCharacterEncoding()

通常的做法是在request.setCharacterEncoding("UTF-8"); 中执行此工作。

我也会将您的JSP FilterpageEncoding更改为utf-8,只是为了保持一致。

另见:

答案 1 :(得分:0)

我之前遇到过这个问题。我在浏览时正确地在JSP网页中显示Farsi字符的一种简单方法是:

步骤1:将文件保存在Eclipse IDE中 保存期间您可能会看到此警告:(见下图)

http://screenshot.net/k203c39

因此,要保存文件,您必须选择&#34;另存为UTF-8&#34;

步骤2:使用记事本编辑器打开页面文件,然后单击&#34;另存为...&#34; :(见下图)

http://screenshot.net/71gkto1

然后选择&#34; UTF-8&#34;作为文件的编码:(见下图)

http://screenshot.net/zw83uq0

然后点击&#34;保存&#34;按钮保存文件。现在,您应该正确浏览JSP页面,并使用正确格式显示的Farsi字符。