社区
Java SE
帖子详情
乱码问题?!!!大哥帮忙解决一下,帅哥来领分!
Flyor
2004-03-23 04:48:56
乱码转换!
...全文
38
3
打赏
收藏
乱码问题?!!!大哥帮忙解决一下,帅哥来领分!
乱码转换!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lostyq
2004-03-23
打赏
举报
回复
可以,知识共享!
Flyor
2004-03-23
打赏
举报
回复
顶!!!
Flyor
2004-03-23
打赏
举报
回复
看一下这篇文章!
Tomcat 作为一种出色的开放源代码的 JSP 服务器,目前在 JSP 的开发过程中获得了广泛的应用. 但是作为一款英语国家公司开发的软件, 在中文环境下不可避免的会出现一些乱码问题. 这里就 Tomcat 4.0 和 Tomcat 4.1 下的常见中文问题及其解决方法做一个总结. 这些方法都已经在 中文版 Windows 98 + JDK 1.3.1 和 中文版 Windows 2000 + JDK 1.3.1 下通过了测试. 另外在 IBM 的网站上有一个网页 http://www-900.ibm.com/developerWorks/cn/java/jsp_dbcsz/index.shtml 也讨论了这个问题.
首先为了便于讨论, 这里首先列出了一些方便的工具方法, 便于我们的讨论. 这些方法如下所示:
// 转换由表单读取的数据的内码到 GB2312
public String toChi(String input) {
try {
byte[] bytes = input.getBytes("ISO8859-1");
return new String(bytes);
}catch(Exception ex) {
}
return null;
}
// 对给定字符进行 URL 编码
public String encode(String value) {
if(isEmpty(value)) return "";
return java.net.URLEncoder.encode(value);
}
// 对给定字符进行 URL 解码
public String decode(String value) {
if(isEmpty(value)) return "";
return java.net.URLDecoder.decode(value);
}
.
问题1. 浏览器中看到的 JSP 页面中的汉字怎么都成了 '?' ?
可能原因如下: 您的页面中没有指定页面的字符集为中文. 解决方法(适用于Tomcat 4.0 和 Tomcat 4.1)是在页面中添加如下代码:
<%@ page contentType="text/html;charset=gb2312" %>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
问题2. 通过 POST 方法提交的表单的汉字都显示为乱码(在 Tomcat 4.0 下正常, Tomcat 4.1 下出现).
可能原因如下: POST 提交的字符串都是 ISO8859-1 编码的, 只要把它的字符集转换到中文就行了. 解决方法如下(适用于 Tomcat 4.1):
// 单个的参数
String result = toChi(request.getParameter("parameterName"));
// 多个参数
String values[] = request.getParametervalues(name);
if(values != null) {
for(int i = 0; i < values.length; i++) {
values[i] = toChi(values[i]);
}
}
问题3. 通过 GET 方法提交的表单的汉字都显示为乱码(在 Tomcat 4.0 和 Tomcat 4.1 下都出现).
可能原因如下: GET 提交的字符串都是 ISO8859-1 编码的, 只要把它的字符集转换到中文就行了. 解决方法如下(适用于 Tomcat 4.1, Tomcat 4.0 下不能用于 page.jsp?username=中文):
// 单个的参数
String result = toChi(request.getParameter("parameterName"));
// 多个参数
String values[] = request.getParametervalues(name);
if(values != null) {
for(int i = 0; i < values.length; i++) {
values[i] = toChi(values[i]);
}
}
问题4. Cookie 中不能写入汉字或者汉字无法正确显示.
可能原因如下: Tomcat 4.0 下自动把 Cookie 做了编码为 ISO8859-1 的存储, 而 Tomcat 4.1 下的 JSP 引擎不支持包含含有汉字的 Cookie.
Tomcat 4.0 下的解决方法:
// 根据 Cookie 名称得到请求中的 Cookie 值, 如果 Cookie 值是 null, 则返回 ""
public String getCookievalue(HttpServletRequest request, String name) {
Cookie[] cookies = request.getCookies();
if(cookies == null) return "";
for(int i = 0; i < cookies.length; i++) {
Cookie cookie = cookies[i];
if(cookie.getName().equals(name)) {
// 需要对 Cookie 中的汉字进行 URL 反编码, 适用版本: Tomcat 4.0
return decode(cookie.getvalue());
}
}
// A cookie might not return a null value, may return a ""
return "";
}
Tomcat 4.1 下的解决方法:
// 写入包含汉字 Cookie 的方法
response.addCookie(new Cookie("cookieName", encode("汉字")));
// 得到 Cookie 值的方法(同 Tomcat 4.0 的解决方法)
public String getCookievalue(HttpServletRequest request, String name) {
Cookie[] cookies = request.getCookies();
if(cookies == null) return "";
for(int i = 0; i < cookies.length; i++) {
Cookie cookie = cookies[i];
if(cookie.getName().equals(name)) {
// 需要对 Cookie 中的汉字进行 URL 反编码, 适用版本: Tomcat 4.0
return decode(cookie.getvalue());
}
}
// A cookie might not return a null value, may return a ""
return "";
}
问题5. 在 Tomcat 4.0 下 GET 请求(如: page.jsp?username=中文) 无法返回原来的值.
原因: 与 Tomcat 引擎有关, 不论是否转换内码, 均无法返回原来的值, 但是有一个替代方法, 如下:
将 URL 地址改变为 "page.jsp?username=" + encode("中文")
然后使用下列代码取回参数:
// 单个的参数
String result = toChi(request.getParameter("parameterName"));
问题6. JavaBean 里使用 <jsp:setProperty id="propName" property="*" /> 出现中文问题.
暂时未提供解决方案.
Java中文
乱码
问题
全搞定
JAVA初学者遇到的常见
问题
就是中文
乱码
问题
,但是导致中文
乱码
的原因有很多,经常搞得焦头烂额。这个视频帮助大家
解决
日常编程中常见的中文
问题
。
python3还会有中文输出
乱码
问题
?!!
这篇文章是以前重构一个python2项目为python3时遇到的一个
问题
,当时记录下来没有发表,现在发表在这里存档。众所周知,python3相比python2的一个最大的改变就是str统一是unicode编码的,带有中文的字符串再也不用写...
解决
tomcat8.5及其以上的IDEA中的
乱码
问题
!!!!!(亲测有用)
解决
tomcat8.5及其以上的IDEA中的
乱码
问题
!!!!!(亲测有用) 首先 经过我在网上反复的查找,发现
解决
tomcat
乱码
的
问题
如出一撤 ,压根没啥卵用,...保证控制台不输出
乱码
! 首先这是tomcat更新后多出来的,我也...
实用干货!Java
乱码
问题
原因及
解决
方案大全
最近有粉丝给壹哥发来私信,问我Java里的
乱码
问题
该怎么
解决
,说是自己被
乱码
问题
给弄的焦头烂额的。其实
乱码
问题
解决
起来很简单,很多人搞不定
乱码
是由于没有找到导致
乱码
的根本原因!试想,如果你都找不到导致
乱码
...
PLSQL查询表中文显示
乱码
???
很多人在使用Oracle可视化工具PLSQL Developer的时候出现了
乱码
的
问题
,其
乱码
原因是Oracle客户端和服务器端的编码方式不一样。导致查询表时中文出现“???”。
解决
方法 首先在PLSQL Developer中输入并执行...
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章