`
strangeromo
  • 浏览: 64794 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

response输出的编码

    博客分类:
  • java
阅读更多

在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

 

 

分享到:
评论
1 楼 patsmith 2009-11-13  
直接用URLEncoder.encode,屡试不爽。呵呵~

相关推荐

    response设置编码 java

    这将强制 Response 的输出流使用 GB2312 编码方式,并且告诉浏览器使用 GB2312 编码方式来解码响应内容。 response.setLocale(new java.util.Locale("zh","CN")) 第三个方法是使用 `setLocale` 方法来设置 ...

    C#利用Response流将数据库数据导出成Excel

    1. 首先,我们设置Response流的编码为GB2312,这是中国国家标准的编码方式。 2. 其次,我们追加了Content-Disposition头信息,规定了响应的文件名和类型。 3. 然后,我们将DataTable对象转换为HTML表格,并将其写入...

    response中文乱码解决的代码

    在处理包含中文字符的文件名时,由于编码不一致或处理不当,可能会导致文件名显示为乱码。 首先,我们需要理解乱码产生的原因。通常,乱码出现是由于字符编码的不匹配,比如在服务器端和客户端之间,或者在HTTP请求...

    response设置的实例源码

    通常,我们使用`getWriter()`获取`PrintWriter`来输出HTML、JSON等文本内容: ```java PrintWriter writer = response.getWriter(); writer.println("<h1>Hello, World!</h1>"); writer.close(); ``` 七、示例代码 ...

    asp.net直接Response输出WML页面示例代码

    在***中,Response对象用于向客户端发送响应,这里使用了Response对象的Write方法来输出WML格式的字符串。 在代码示例中,首先设置了HTTP响应的内容类型(ContentType)为"text/vnd.wap.wml",这告诉浏览器当前响应...

    java response 下载文件方法

    - **编码问题:** 在设置文件名时,`new String(zipName.getBytes())`可能会遇到乱码问题,建议使用如`URLEncoder.encode(zipName, "UTF-8")`来避免此类问题。 - **资源释放:** 输入输出流必须妥善关闭,防止资源...

    C#自动识别URL编码,asp.net自动识别URL编码

    例如,当使用`Response.Redirect()`或`Response.Write()`等方法时,框架会自动处理URL编码,无需手动编码。 - 在MVC中,路由系统能够自动解码URL并将其映射到相应的控制器和动作,但开发者仍需注意在模型绑定和查询...

    response

    JSP页面默认可能使用ISO-8859-1编码,但可以通过`response.setCharacterEncoding(String charset)`设置适当的字符集,如UTF-8,以确保正确处理非ASCII字符。 7. **写入响应体** `response.getWriter()`返回一个`...

    vb url编码解码vb url编码解码vb url编码解码

    在给出的代码片段中,`Server.UrlEncode`方法被调用后,其结果被赋值给了变量`a`,然后使用`Response.Write`输出了编码后的结果。紧接着,`URLDecode`函数被调用来解码`a`中的字符串,其结果同样通过`Response.Write...

    getOutputStream() has already been called for this response 错误解决

    2. **使用PrintWriter替换OutputStream**:如果你需要输出文本,优先考虑使用`getWriter()`,因为它更方便地处理字符编码和文本格式。 3. **使用缓冲区**:如果你需要交替输出文本和二进制数据,可以先将所有数据...

    servlet输出中文乱码问题

    4. **输出流编码设置问题**:在Servlet中使用`PrintWriter`或`OutputStream`输出数据时,如果没有正确地设置输出流的字符编码,同样会导致乱码。 #### 三、解决方案详解 根据以上分析,我们可以通过以下步骤来解决...

    Response.AppendHeader使用大全

    - **Web 配置文件**:为了确保输出的编码与预期一致,在 `web.config` 文件中指定 `responseEncoding` 属性非常关键。 - 当 `web.config` 设置为 `gb2312` 时,无需使用 `Server.UrlEncode`。 - 当 `web.config` ...

    response工具

    处理response响应,设置公共的编码并直接输出到浏览器。

    servlet输出JS乱码问题

    在设置了响应的字符编码之后,才能通过response.getWriter()获取到可以正确处理UTF-8编码的PrintWriter对象,进而输出包含中文的JS代码。 四、实践示例 在给出的部分内容中,可以看到Servlet处理了来自JSP页面的...

    handleStream ServletOutputStream out = response.getOutputStream(); InputStream i

    `response.getOutputStream()` 方法是Servlet API的一部分,它用于获取与HTTP响应关联的输出流对象。这个方法在服务器端处理请求时非常常见,尤其在构建动态网页时。 当我们处理一个HTTP请求时,服务器会创建一个`...

    JavaWeb页面过滤器之编码过滤

    因此,编码过滤器的目的是确保所有的输入和输出都使用一致的字符编码。 JavaWeb中的Filter接口是实现编码过滤的关键。Filter是Servlet API的一部分,可以拦截HTTP请求和响应,进行预处理和后处理。在创建编码过滤器...

    Jsp页面中的字符编码方式与乱码解决方法

    pageEncoding 的作用还包括在 JSP 中不指定 contentType 属性,也不使用 response.setCharacterEncoding 方法指定编码方式时,服务器响应的编码方式以及浏览器的编程方式。 2. contentType="text/html;charset=UTF-...

    JSPServlet 中的汉字编码问题

    charset=UTF-8" %>`这样的指令指定输出内容的编码格式。 - 需要在JSP页面头部指定正确的编码格式,例如`; charset=UTF-8">`。 - **Servlet 中的编码问题**: - 在Servlet中处理请求时,可以使用`request.set...

    jsp中影响编码的属性及其设置小结

    例如,`request.setCharacterEncoding()`用于处理请求的输入数据,`response.setCharacterEncoding()`用于设置响应的输出数据的编码。 5. `setContentType()`:`response.setContentType()`用于设置HTTP响应的MIME...

    Aspdotnet2_0中自定义过滤器对Response内容进行处理

    例如,可以修改HTTP头信息,编码方式,或者直接修改输出的HTML内容。 ```csharp public override void OnResultExecuted(ResultExecutedContext filterContext) { var response = filterContext.HttpContext....

Global site tag (gtag.js) - Google Analytics