注册 登录
编程论坛 J2EE论坛

中文全变成 ? 了 !

lewis0323 发布于 2006-10-23 17:38, 1100 次点击

请问我用servlet查询数据库返回的结果只能显示数字的信息 文字的信息全部变成 ?? 了 这是什么原因啊?

12 回复
#2
lewis03232006-10-23 17:58

谁帮帮我啊 字母 数字都没问题 数据库传回的数据也没问题 (一个汉字一个?)
就是中文全变成?了 其他的操作如插入 显示表中全部数据都可以正常显示 就是这个查询用Servlet写的代码不能正常显示中文

#3
lewis03232006-10-23 18:08
response.setContentType("text/html; charset=GB2312");
这样写对吗 其他的操作这样写都没问题啊 对了 其他的操作都是JSP页面加JAVA BEAN完成的 就这个用SERVLET
所以很多地方 哪位好心人帮我解答一下吧 谢谢了
#4
可可℃乐2006-10-23 18:16

用字符集转换。
你直接进入数据库查询看看是不是乱码
如果写进去的时候就是的话这样写
String name = new String(request.getParameter("name").getBytes("iso-8859-1"),"gb2312");
如果数据库中不是乱码的话,在页面声明的时候写上
response.setCharacterEncoding("GBK");
应该就差不多了
输出还是乱码 还用写进去的类似写法读出

#5
lewis03232006-10-23 18:33
还是不行啊   是不是String name="";    我定义了这个之后再用name显示中文   是不是因为这个而不行的???
#6
xiuyuan1232006-10-24 12:04
<%@ page language="java" contentType="text/html;charset=gb2312" %>
#7
zplove2006-10-25 08:55
写一个过滤器就可以拉
#8
熬着过青春2006-10-25 12:01
cd
#9
え元元え2006-11-24 16:43
request.setEconding("gb2312");
response.setEconding("gb2312");
解决输入输出编码问题

<%@ page language="java" contentType="text/html;charset=gb2312" %>
解决页面编码问题
#10
千里冰封2006-11-24 17:48
又是一个编码的问题
#11
独孤无痕2006-11-24 18:12

加filter
代码如下:
package Servlet;
import javax.servlet.ServletResponse;
import javax.servlet.Filter;
import javax.servlet.ServletException;
import javax.servlet.FilterConfig;
import javax.servlet.ServletRequest;
import javax.servlet.FilterChain;
import java.io.IOException;

public class Filter1 implements Filter
{
private FilterConfig _filterConfig = null;

public void init(FilterConfig filterConfig) throws ServletException
{
_filterConfig = filterConfig;
}

public void destroy()
{
_filterConfig = null;
}

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
{
request.setCharacterEncoding("GBK");
chain.doFilter(request, response);
}
}

#12
weiyu04012006-11-25 19:28
class Filter implements FilenameFilter实现后调用一下,做个验证在找解决的方法,看是调用的问题还是数据库问题

#13
不耻下問2006-11-27 01:40

一般从数据库读数据的话
request.setCharacterEncoding("gb2312");
response.setCharacterEncoding("gb2312");
这两句可以解决。
只要写进数据库的是中文。

最不好处理的是JSP传JSP
只有按iso-8859-1格式转换成字节流。
再转换成字符串了,
不过我上次用iso-8859-1处理了后还是乱码。
谁让开发工具是人家外国的呢。。。。。

1