在前面的网页中的编码与乱码系列中(一, 二, 三, 四, 五 ), 曾多次提到使用 servlet 方式构建的动态响应流, 不过在那里都是直接使用字节流的方式, 不过, 更为常见的方式是使用字符流. 而在前面, 又谈到了 Java 字节流与字符流的话题(一, 二, 三, 四 ).
有了前面的基础, 现在来说下 Java servlet 中使用字符流, 也即是 PrintWriter
时的编码与乱码问题.
回顾字节流的情形
先回顾一下, 在之前的字节流响应中, 我们使用 String.getBytes
方法, 然后总是显式传入编码的参数, 使它与 meta 中或者 header 的声明一致. 比如这样: