当前位置:首页>开发>正文

我写的servlet,打开网页后出现的中文是问号 servlet从jsp获得汉字怎么成了一个个问号

2023-04-28 22:59:12 互联网 未知 开发

 我写的servlet,打开网页后出现的中文是问号 servlet从jsp获得汉字怎么成了一个个问号

我写的servlet,打开网页后出现的中文是问号

你在resp.getWriter();之前写的这句话嘛?你是直接通过PrintWriter 输出中午不能够成功还是 读取参数 转输入不成功?出现问号是因为你读入是字节流所以她不能正确的显示中文!
详细一点才好帮你分析问题
如果是读入参数的话 post方式读入的话 里边加入req.setCharacterEncoding("GBK")

servlet从jsp获得汉字怎么成了一个个问号

request.setCharacterEncoding("utf-8")
response.setCharacterEncoding("utf-8")这两个设置一般都是针对post方法传值用的,
String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8") 这种方式是get方法传值用的,一般就是将值直接写在url中传值时用到。两种二选一,只要你页面的编码方式和servlet编码方式一致,基本上就可以解决了。

servlet处理中文乱码问题

String username = new String (request.getParameter("username").getBytes("ISO-8859-1"),"gb2312")

把从表单中获取的代码写成如上形式即可

为什么eclipse 后台中文显示为问号

我的eclipse版本:Indigo Service Release tomcat版本:6.0.3在eclipse中windows->Preferences->general->Content Types把jsp和Java Source File的编码都设置为UTF-8.
jsp页面中也设置:
<%@ page language = "java" import = "java.util.*" contentType="text/htmlcharset=UTF-8" pageEncoding="UTF-8"%>
进行处理的servlet中request.setCharacterEncoding("UTF-8")

在servlet获取表单的值,打印输出的是问号

有几种解决方案:
1,在出现编码的地方都统一用utf-8,这样类似new String(authority.getBytes("ISO-8859-1"),"gbk")这样的转码操作可以不用(servlet里,jsp或html里面都要检查一下);

2,其实你这种情况下市不需要用非英文字符的,radio类型的authority的value=“普通用户”或“经理”完全可以用"0","1"这些来代替,而ASCII字符在大多数编码里是一致的,从而可以规避乱码;

3,第三种方法可能是你想要的,据我判断,问题可能出在“表单代码”,你看看其编码是否是"ISO8859-1",否则转码是不对的。
有问题再联系

servlet 里读取的参数怎么都是问号呢?

没有设置请求参数编码
加上request.setCharacterEncoding("gb2312")就可以了。
另外,做jsp开发时,可以通过一个过滤器来解决这个请求参数编码问题。
可以参考Tomcat的一个实现。它在tomcat的安装目录
webappsservlets-examplesWEB-INFclassesfilters下,名字为
SetCharacterEncodingFilter.java
然后配置你的web.xml,加入一下内容

CharacterEncoding
SetCharacterEncodingFilter路径(含包名)

encoding
GB2312


CharacterEncoding
/*

最新文章