㈠ jsp椤甸潰鎬庝箞鑾峰彇杈撳叆鐨勪腑鏂
涓夌嶆柟娉曪細A 鎺ュ彈鍙傛暟鏃惰繘琛岀紪鐮佽浆鎹String str = new String(request.getParameter("something").getBytes("ISO-8859-1"),"utf-8")锛 杩欐牱鐨勮瘽锛屾瘡涓涓鍙傛暟閮藉繀椤昏繖鏍疯繘琛岃浆鐮併傚緢楹荤儲銆備絾纭瀹炲彲浠ユ嬁鍒版眽瀛椼侭 鍦ㄨ锋眰椤甸潰涓婂紑濮嬪勶紝鎵ц岃锋眰鐨勭紪鐮佷唬鐮侊紝 request.setCharacterEncoding("UTF-8")锛屾妸鎻愪氦鍐呭圭殑瀛楃﹂泦璁句负UTF锛8銆傝繖鏍风殑璇濓紝鎺ュ彈姝ゅ弬鏁扮殑椤甸潰灏变笉蹇呭湪杞鐮佷簡銆傜洿鎺ヤ娇鐢⊿tring str = request.getParameter("something")锛涘嵆鍙寰楀埌姹夊瓧鍙傛暟銆備絾姣忛〉閮介渶瑕佹墽琛岃繖鍙ヨ瘽銆傝繖涓鏂规硶涔熷氨瀵筽ost鎻愪氦鐨勬湁鏁堟灉锛屽逛簬get鎻愪氦鍜屼笂浼犳枃浠舵椂鐨別nctype="multipart/form-data"鏄鏃犳晥鐨勩傜◢鍚庝笅闈㈠崟鐙瀵硅繖涓涓や釜鐨勪贡鐮佹儏鍐靛啀杩涜岃存槑銆侰 涓轰簡閬垮厤姣忛〉閮借佸啓request.setCharacterEncoding("UTF-8")锛屽缓璁浣跨敤杩囨护鍣ㄥ规墍鏈塲sp杩涜岀紪鐮佸勭悊銆
㈡ jsp页面获取中文乱码怎么解决方法
1、在jsp页中加入一条语句:
<%@ page contentType="text/html;charset=gb2312" %>中文显示就正常了。
2、对于从网页中的文本框通过String parameter = request.getParameter(“parameter”);方式获得的字符串,均是8859_1的编码,
如果想把它显示在网页上就必须得用parameter = new String(parameter.getBytes(“8859_1”),”gb2312”)进行转换,windows和linux这两种系统都是一样的。
有一个简单方法,就是在 getParameter() 方法获取参数之前,使用request.setCharacterEncoding("GB2312");,将提交的信息转化为 GB2312 编码。
3、但是对于将数据写入数据库的问题,采取的方式就不同了:
windows下,必须要采用该字符串转换再插入数据库,而linux下就不需要,而是直接把8859_1编码的字符插入。
如果从数据库中读出的数据,对于windows因为在插入时已经做了转换,所以读出时已经是gb2312的,当把它显示在网页上时,不需要做编码转换,而 linux上的mysql中的数据是8859_1的所以要做编码的转换。
4、 如果你给某个字符串变量赋予一个中文字符串的值,那么在你取出他时,在网页上的显示是不需要做字符转换的,
但是如果你要在linux下做字符的比较,则还需要把字符做parameter = new String(parameter.getBytes(“gb2312”),”8859_1”)的转换。
5、长江电力网站解决中文问题的方法是:
1)在catalina.sh文件中的相关位置添加下面一行
-Dfile.encoding=GBK \
2)在每个jsp文件的最前面添加下面两行
<%@ page contentType="text/html; charset=GBK" %>
<%request.setCharacterEncoding("GBK");%>
㈢ jsp如何实现中英文切换
有 我写个例子: 有个表 编号 姓名 性别 这个表的这些文件重一个叫zh_CN.properties的文件中配置 在src新建一个zh_CN.properties文件 里面的内容为: id=编号 name=姓名 sex=性别 在src建立一个en_US.properties文件 里面的内容为: id=no name=your name sex=your sex 然后用解析java代码 如果有异常请你自己处理 我不处理异常了 public class Location{ public static Properties getLocalLang(String lan){ String filename = "/"+lan+".properties"; InputSream inSteam = this.getResourceAsStream(filename); Properties pro = new Properties(); pro.load(inStream); return pro; } } servlet 调用: doPost Properties pro = Location.getLocalLang(“zh_CN”); request.getSession().setAttribute("pro"); 页面 <td>pro.getProperty("id")</td> <td>pro.getProperty("name")</td> <td>pro.getProperty("sex")</td> 明白了 不明白请和我们的团队 小小的窝联系
㈣ JSP <a href="">中传递中文的问题
你好啊 ,你学jsp是吧!
你可能还不知道jsp在在传递中文时候会出现乱码
所以说你的图片路径在传递后的路径系统识别不出来了
所以你要么改成英文的,要么解决中文乱码的问题
怎么解决呢?
这有篇文章,你看看,我试过,可以成功
关于JSP中文乱码
JSP文件中乱码现象经常遇到,那如何处理就是我们不可避免的话题,那么该如何解决呢,下面我针对不同的情况,给出几种处理方式:
1) JSP页面中文乱码,这种情况比较好处理,在页面的page指令中加上如下一项就行
<%@ page contentType=”text/html;charset=UTF-8” %>
2) JSP页面采用表单提交时,提交的数据中包含中文,并且提交方式为post这时我们获取表单数据后,展示到其它页面时会出现乱码,解决方案是在获取请求中的参数前,先设置请求的字符集。
如下代码: request.setCharacterEncoding(“UTF-8”) ;
3) 还是表单提交数据,但是提交方式为默认的get方式,这时即使我们设置了请求字符集,但取出来还是乱码,这时需要如下的转换方式,我把转换方式用一个编码转换类来实现了。
/*
* 定义一个转换字符集的工具类CharSetTool
*
* 定义一个方法,用来转换
*/
public class CharSetTool
{
/*
* 方法toUTF8()
* 参数: @inStr 传入要转换的字符串
*/
public static String toUTF8(String inStr)
{
String rtStr="";
if(inStr!=null)
{
try
{
rtStr=new String(inStr.getBytes("ISO-8859-1"),"UTF-8");
}
catch (UnsupportedEncodingException e)
{
//打印错误信息
System.out.println(e.getMessage());
}
}
return rtStr;
}
}
4) URL中文参数乱码处理,
比如:超链接方式
<%
String str="我是中国人";
%>
<a href="next?str=<%=str%>">我是链接,单击可以提交参数</a>
注:next 为 Servlet的URL Pattern
那在将中文作为参数值传递时,首先要把中文字符串进行编码转换,转换成URL格式
操作如下:
<%
String str="我是中国人";
//使用URLEncoder.encode方法
str = URLEncoder.encode(str,"UTF-8");
%>
<a href="next?str=<%=str%>">我是链接,单击可以提交参数</a>
综合以上几种比较常见的JSP中文乱码的处理方式,不管是何种提交方式,我们都可以使用JSP中的过滤器(Filter)来过滤字符编码,下面我就给出一个我自己定义的 “通用”的字集编码过滤器。
/**
* 处理中文字符集的过滤器
*
* @author Administrator
*
*/
public class EncodingFilter implements Filter
{
//过滤器销毁的方法
public void destroy()
{
}
public void doFilter(ServletRequest request, ServletResponse response,FilterChain chan)
throws IOException, ServletException
{
//设置响应模式
response.setContentType("text/html;charset=UTF-8");
//判断客户端的提交方式
if(((HttpServletRequest)request).getMethod().equalsIgnoreCase("POST"))
{
//POST方式提交
//设置请求字符集
request.setCharacterEncoding("UTF-8");
}
else
{
//处理GET
//获取所有的提交参数
Enumeration names = request.getParameterNames();
//遍历
while(names.hasMoreElements())
{
//参数名
String name = (String)names.nextElement();
//因为不知道参数是多值还是单值
String values[] = request.getParameterValues(name);
//循环处理字符集转换
for(int i=0;i<values.length;i++)
{
values[i] = toUTF8(values[i]);
}
}
}
//调用过滤器链中的下一个过滤器
chan.doFilter(request, response);
}
//转换方法(内部私有方法)
private String toUTF8(String str)
{
String rt = null;
try {
if(str!=null)
{
//转换新字符集
rt = new String(str.getBytes("ISO-8859-1"),"UTF-8");
}
} catch (UnsupportedEncodingException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
return rt;
}
//初始化方法
public void init(FilterConfig config) throws ServletException
{
}
}
然后在web.xml文件中进行相关的配置 :
<!-- 配置过滤器 -->
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>ocean.mvc.filter.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern> <!-- 匹配所有的请求 -->
</filter-mapping>
㈤ jsp页面的jquery ui datepicker控件出现中文乱码,有没有人出现过这种问题帮忙解决一下,谢谢!
是文件的编码,右键文件属性改成你需要的。
可能你项目是GBK但JS文件是UTF-8
㈥ JSP: 哪里JSP的中文API参考手册下载
jsp没有中文的API,所以还是看英文的^_^
㈦ jsp中处理中文乱码的解决方案有哪些
JSP 中文乱码处理解决方案
初学JSP,尤其是环境(GlassFish默认UTF-8,则不存在此类问题),经常会因为中文汉字字符集设置问题导致中文乱码,本文就这一问题提出解决方案,解决中文乱码问题,供各位参考,我采用的方案是统一字符集至UTF-8,同时避免GB2312所带来的中文字符集不够用的隐患,需注意的地方有三点,默认情况下是英文字符集。
1、Tomcat 的 server.xml 文件,设置服务器端口工作方式
2、Servlet 和 JavaBean 对字符串字符集处理的统一
3、JSP页面的字符集统一
完成这三点统一,中文想乱码都难,如果使用MySQL的话,数据表也需要做UTF-8统一。
修改Tomcat的server.xml文件,该文件位于 tomcat/conf,红色部分为添加部分,也就是当前使用的HTTP端口的连接方式的设置。
找到Connector 标签,使 Tomcat 服务器以UTF-8模式进行工作,从底层对乱码进行处理,修改如下:
<Connector URIEncoding="utf-8" port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
其它应用服务器例如GlassFish默认支持utf-8,服务器本身无需设置,只须代码上注意即可。
运行代码内设置如下:
JavaBean 和 Servlet 内需要处理中文的地方之前,或者所有函数最前端加上
request.setCharacterEncoding ("UTF-8");
response.setCharacterEncoding ("UTF-8");
避免在 JavaBean 和 Servlet 内出现汉字乱码。
JSP代码中的 JAVA 字符编码设置,在页面上对乱码进行处理。
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
红色为制定JSP处理字符采用UTF-8编码处理方式。
<%request.setCharacterEncoding ("UTF-8");%>
JSP内JAVA代码设定接收参数为UTF-8编码
JSP 内 HTML 头的编码设置,页面处理以UTF-8,避免显示乱码。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Note Page</title>
</head>
<body>
……
……
红色部分UTF-8制定HTML页面使用的编码方式
<form action=index.jsp method="post"><h3>Please Input Your Name:</h3>
<input type="text" size="30" name="中文名字" value="" >
<input type=submit value="提交">
</form>
接收代码如下:
<%
// 通过二进制传递的参数,因为UTF-8的设置,无须转换,直接中文操作,而不会出现乱码。
String temp1 = request.getParameter ("yourname");
……
%>
采用get方式略有不同,若只采用以上设定,遇中文参数,因编码不同,会导致部分文字信息丢失,所以在提交前务必进行编码,这里用到两个函数java.net.URLDecoder.decode 和java.net.URLDecoder.encode,分别是编码和解码。
<a href="
<%=request.getContextPath()%>/index.jsp?传递的参数名=
<%=java.net.URLEncoder.encode (传递的汉字变量,"UTF-8")%>">
<%=超链接热点显示内容%>
</a>
作为参数传递的中文,由 java.net.URLEncoder.encode函数将要发送的变量解析为16进制数字编码,进行URL传递,接收代码如下:
<%String str = request.getParameter ("传递的参数名");%>
由此,获得参数后的 str 内将是正确的中文信息,完全避免了乱码的显示。
可用 java.net.URLDecoder.decode 函数
例如
<%
String str1 = java.net.URLDecoder.decode(request.getParameter("传递的参数名"),"UTF-8");
%>
完毕将完美解决中文字符参数乱码问题。