response输出的编码

在Servlet的response输出时,若输出的内容是UTF-8编码,则应设置
response.setContentType("text/html;charset=UTF-8");
也就是说必须指定contentType,Web Server才能按正确的编码输出内容。。。

然后再response.getWriter().write(e.getMessage());
但是response.getOutputStream().print依然有乱码,因为outputstream是输出流,并不对编码进行处理。。
而getWriter则有对编码进行再处理。。。

    /* get encoding from Content-Type header */
    String encoding = getCharacterEncoding();
    if (encoding==null && _servletHttpRequest!=null)
    {
        /* implementation of educated defaults */
        String mimeType = _httpResponse.getMimeType();
        encoding = _servletHttpRequest.getServletHandler()
            .getHttpContext().getEncodingByMimeType(mimeType);
    }
    if (encoding==null)
        // get last resort hardcoded default
        encoding = StringUtil.__ISO_8859_1;

 
上面内容是Jetty的getWriter一个实现。。默认下使用的编码是iso-8859-1

转自:http://hi.baidu.com/wadise/blog/item/771fa8ecd1d0112263d09fed.html

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值