JSP <a href="">中传递中文的问题 5
在一个页面上,有个缩略图,点击打开新窗口。连接地址是图片的地址,因为图片有中文,所以打开新窗口失败。这个问题怎么解决啊?谢谢不能改。。就是要中文不好意思,没有解决问题不好...
在一个页面上,有个缩略图,点击打开新窗口。
连接地址是图片的地址,因为图片有中文,所以打开新窗口失败。这个问题怎么解决啊?谢谢
不能改。。就是要中文
不好意思,没有解决问题
不好意思啊!都没有解决到问题,谢谢!! 展开
连接地址是图片的地址,因为图片有中文,所以打开新窗口失败。这个问题怎么解决啊?谢谢
不能改。。就是要中文
不好意思,没有解决问题
不好意思啊!都没有解决到问题,谢谢!! 展开
4个回答
展开全部
你好啊 ,你学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在在传递中文时候会出现乱码
所以说你的图片路径在传递后的路径系统识别不出来了
所以你要么改成英文的,要么解决中文乱码的问题
怎么解决呢?
这有篇文章,你看看,我试过,可以成功
关于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>
展开全部
有两种方法:
一,图片改为英文名
二,对图片的路径名进行处理,假设图片路径名为String imgRoot=new String(imgRoot.getBytes("ISO-8859-1"),"GB2312");
一,图片改为英文名
二,对图片的路径名进行处理,假设图片路径名为String imgRoot=new String(imgRoot.getBytes("ISO-8859-1"),"GB2312");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把图片名改为英文名.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
url =java.net.URLEncoder.encode(imgpath,"UTF-8");
这样做就可以了。
这样做就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询