java编码 servlet输出到浏览器出现中文乱码 求大神指教

response.setContentType("text/html;UTF-8");
response.getOutputStream().write("中国".getBytes());
这样是不会出现乱码的,但是我不知道"中国".getBytes()这个是获得的什么码表的字节数组,于是我改成了
"中国".getBytes(“UTF-8”),悲剧了,乱码出现了。于是我彻底晕了,到底是什么原因?请大神帮忙看看如下疑惑。
1、我取得的是UTF-8下的字节数组然后让浏览器以UTF-8接收,怎么还会出错?
2、为什么"中国".getBytes()这样写就不会出错呢?
3、字节流在传送时不是不查码表的嘛,那服务器中的默认码表是什么?
跪求大神解疑答惑,不胜感激!!!最好加我QQ1308567317 这样方便交流,谢谢啦

response.setContentType("text/html;UTF-8");书写错了,应该为

response.setContentType("text/html;charset=UTF-8");

"中国".getBytes()使用的是本地平台默认的字符集编码,即GBK。美国的应该就是ISO8859-1

第三个问题本身就不存在,数据到达服务器中时还是字节,何来编码
温馨提示:答案为网友推荐,仅供参考
相似回答