html 中文乱码 HTML超链接中文乱码问题分析及解决方法
发布时间:2012-12-30 16:54:52 作者:佚名 我要评论
Vm中一个超链接URL需要拼接中文作为Get请求的参数如果直接拼接,传到后台Action的参数对象中后取出会是乱码,需要编码后再拼接到URL上,接下来将和大家分享一下解决方法
Vm中一个超链接URL需要拼接中文作为Get请求的参数。如果直接拼接,传到后台Action的参数对象中后取出会是乱码,需要编码后再拼接到URL上。
解决方法是在Action中添加一个成员变量,保存编码后的中文参数。在vm页面渲染时取出这个变量值,再拼接超链接。
在这里碰到的问题是:调用java.net.URLEncoder的encode()方法时,如果没有显示指定字符集参数,那么URLEncoder会使用默认字符集。这个默认字符集在Eclipse里跑main()方法和在Tomcat里跑Web应用,得到的结果不一样,所以影响了编码的结果。
/**
* Translates a string into <code>x-www-form-urlencoded</code>
* format. This method uses the platform'sdefault encoding
* as the encoding scheme to obtain thebytes for unsafe characters.
*
* @param s <code>String</code> to betranslated.
* @deprecated The resulting string mayvary depending on the platform's
* default encoding. Instead, use theencode(String,String)
* method to specify the encoding.
* @return the translated <code>String</code>.
*/
@Deprecated
public static String encode(String s) {
String str = null;
try {
str = encode(s, dfltEncName);
} catch(UnsupportedEncodingException e) {
// The system should always have theplatform default
}
return str;
}
方法的注释中也说明了不建议使用的原因是,这个encode(String)方法依赖于平台字符集。
解决方法是在Action中添加一个成员变量,保存编码后的中文参数。在vm页面渲染时取出这个变量值,再拼接超链接。
在这里碰到的问题是:调用java.net.URLEncoder的encode()方法时,如果没有显示指定字符集参数,那么URLEncoder会使用默认字符集。这个默认字符集在Eclipse里跑main()方法和在Tomcat里跑Web应用,得到的结果不一样,所以影响了编码的结果。
复制代码
代码如下:/**
* Translates a string into <code>x-www-form-urlencoded</code>
* format. This method uses the platform'sdefault encoding
* as the encoding scheme to obtain thebytes for unsafe characters.
*
* @param s <code>String</code> to betranslated.
* @deprecated The resulting string mayvary depending on the platform's
* default encoding. Instead, use theencode(String,String)
* method to specify the encoding.
* @return the translated <code>String</code>.
*/
@Deprecated
public static String encode(String s) {
String str = null;
try {
str = encode(s, dfltEncName);
} catch(UnsupportedEncodingException e) {
// The system should always have theplatform default
}
return str;
}
方法的注释中也说明了不建议使用的原因是,这个encode(String)方法依赖于平台字符集。
相关文章
- 写HTML5代码时发现中文显示乱码,之前以为是不兼容IE10、然后换成火狐,谁知也不行,经反复研究测试,寻得个不错的解决方法,有类似情况的朋友可以参考下2013-11-18
- HTML5 UTF-8出现中文乱码的情况,应该有很多的朋友都有遇到吧,用记事本写,保存后在网页上运行出现了乱码,换成GB2312能正确显示中文,下面就为大家探讨下具体的解决方法2013-11-18
- 我今天的页面也是出现了乱码,所以在网上查找了相关的问题,看来一下,这个方法挺不错的,我也试验了呢,我用的editp编辑器,在文档—文件编码—更改文件编码—选择自己所2013-02-26
- 今天遇到个问题就是写的HTML代码打开显示的是乱码问题,怎么处理这一问题呢,下面小编通过图文实例相结合给大家分享处理方法,一起看看吧2021-09-02
最新评论