解决delphi客户端用TIDhttp POST 传参中文乱码问题(转)

用Tidhttp post方法向服务器传参,碰到中文乱码的问题。 
1、delphi传中文到Java是乱码。 
上代码: 
procedure TForm18.Button1Click(Sender: TObject); 
var 
  userName : String ; 
  userPwd : String ; 
  Url: String ; 
  Params : TStringList ; 
  result : string ; 
begin 
  if edtUserName.Text ='' then 
    showmessage('请输入用户名') 
    else if edtPwd.Text ='' then 
    showmessage('请输入密码') 
    else 
    begin 
      userName := edtUserName.Text ; 
      userPwd := edtPwd.Text ; 
      Params := TStringList.Create ; 
      Params.Add('userName='+userName) ; 
      Params.Add('userPwd='+userPwd); 
      idHTTP1.Request.ContentType:='application/x-www-form-urlencoded; Charset=UTF-8'; 
      Url := 'http://192.168.1.104:8080/myservlet/servlet/Hello'; 
      result := IdHTTP1.Post(Url, Params); 

    end; 
end; 

    只要加一句idHTTP1.Request.ContentType:='application/x-www-form-urlencoded; Charset=UTF-8';就可以解决。 

2、Java传中文到delphi是乱码。 

    public void doPost(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException { 
    response.setContentType("text/html:charset=utf_8"); 
    response. setCharacterEncoding("UTF-8"); 
        PrintWriter out = response.getWriter(); 
    login(request ,response); 
    
    } 
    
    public void login (HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException{ 
    
    response.setContentType("text/html:charset=UTF-8"); 
    response.setCharacterEncoding("UTF-8"); 
        PrintWriter out = response.getWriter(); 
    String userName = request.getParameter("userName");  
    String userPwd = request.getParameter("userPwd");    
    LoginDAO loginDAO = new LoginDAO(); 
    List<Operator> list = loginDAO.searchUser(userName , userPwd ); 
    
    } 

加一句response.setCharacterEncoding("UTF-8");就解决了。 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值