各位老大为什么我从URL中读取的中文参数总是乱码?

iceleighton 2003-10-06 05:03:56
每次用http://localhost:9080/Hello/HelloServlet?你好
这个URL调用,你好被打印出来的时候总是:????
郁闷!
那位高手解释一下!

源程序如下:

import java.io.*;
import java.util.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* @version 1.0
* @author
*/
public class HelloServlet extends HttpServlet {

/**
* @see javax.servlet.http.HttpServlet#void (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("enter doGet");
try{
resp.setContentType("text/html,charset=GB2312");
PrintWriter out=resp.getWriter();
resp.setStatus(HttpServletResponse.SC_OK);
out.println("<html>");
out.println("<head><title>Hello World</title></head>");
out.println("<body>");
out.println("<H1>Hello World!</H1>");
out.println("<H2>这个服务的调用者是:</H2>");
out.println("<dl>");
Enumeration e=req.getHeaderNames();
while (e.hasMoreElements()){
String name=(String)e.nextElement();
out.println("<dt>"+name+"</dt><dd>"+req.getHeader(name)+"</dd>");
}
out.println("<dt>Request method:</dt><dd>"+req.getMethod()+"<dd>");
out.println("<dt>Translate Request path into:</dt><dd>"+req.getPathTranslated()+"<dd>");
out.println("<dt>Request query string:</dt><dd>"+req.getQueryString()+"<dd>");
System.out.println("这是:"+req.getQueryString());
out.println("</dl>");
out.println("</body></head></html>");
}
catch (IOException e){
System.out.println("HelloServlet doPost方法出现异常!");
}
}

/**
* @see javax.servlet.http.HttpServlet#void (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {

}

/**
* @see javax.servlet.GenericServlet#void ()
*/
public void init() throws ServletException {
System.out.println("HelloServlet 开始初始化!");
File f= new File(System.getProperty("user.dir"));
f=new File(f.getAbsolutePath());
System.out.println("HelloServlet当前的路径是:"+f);
}

}
...全文
40 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
klbt 2003-10-07
  • 打赏
  • 举报
回复
字符集问题?
gjd111686 2003-10-07
  • 打赏
  • 举报
回复
转换函数:
public String getStr(String strValue)
{
try
{
String strBuffer=strValue;
byte[] byteBuffer=strBuffer.getBytes("ISO8859-1");
String strReturn=new String(byteBuffer);
return strReturn;
}
catch(Exception e)
{
return null;
}
}

2,632

社区成员

发帖
与我相关
我的任务
社区描述
WebSphere 是 IBM 的软件平台。它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。
社区管理员
  • WebSphere社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧