很多场合会发现我们输出的中文是乱码,这主要可能有两方面的原因:

一个是浏览器的解析方式,另一个是我们服务器端返回数据的方式。只要我们保证浏览器的解析方式和我们回显的数据的编码格式是一致的,基本上乱码问题就可以得到解决。大多数数情况下,浏览器的默认编码方式是utf-8,因此我们只要设置服务器返回的数据的编码方式也是utf-8即可。

在Java后台的Controller代码或者Servlet代码中用response的方法来设置输出内容的编码方式,主要有以下三个方法:

1、response.setCharacterEncoding("UTF-8");

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

3、response.setLocale(new java.util.Locale("zh","CN"));

下面对以上3种方法进行差异分析:

第一种方法只能用来设置out输出流中所采用的编码,但是它的优先权最高,可以覆盖后面两种方法中的设置;

第二中方法可以设置out输出流中字符的编码方式,也可以设置浏览器接收到这些字符后以什么编码方式来解码,它的优先权低于第一种方法,

但高于第三种方法;这种方法通知response以UTF-8输出和浏览器以UTF-8打开。即等价于

response.setHeader("content-type", "text/html;charset=UTF-8");通知浏览器以utf-8解析

和response.setCharacterEncoding("UTF-8");注意第二句句需要写在PrintWriter out = response.getWriter();的前面,如果拿到字符流后再设置编码是没有用的。

第三种方法只能用来设置out输出流中字符的编码方式,但是它的优先权最低,在已经使用前两种方法中的一个设置了编码方式以后,它就被覆盖而不起作用了。

out.write()是字节输出流的方法

out.print()是字符输出流的方法

一、区别

1. print方法是子类JspWriter,write是Writer类中定义的方法;

2. 重载的print方法可将各种类型的数据转换成字符串的形式输出,而重载的write方法只能输出字符、字符数组和字符串等与字符相关的数据;

3. JspWriter类型的out对象使用print方法和write方法都可以输出字符串,但是,如果字符串对象的值为null时,print方法将输出内容为“null”的字符串,而write方法则是抛出NullPointerException异常。

转载至链接:https://my.oschina.net/mrpei123/blog/1859951

java response.write_response设置编码方式 print和write方法的对比相关推荐

  1. vim 设置编码方式

    vim 设置编码方式 直接讲解决办法: 进入命令模式:按ESc 键入命令:首先要输入冒号  shift  +  : 然后输入命令: set fileencoding=gb18030 set filee ...

  2. php设置mysql查询编码,php连接mysql时怎么设置编码方式

    php连接mysql时怎么设置编码方式 php连接mysql数据库时,也就是在mysql_connect()语句之后添加"mysql_query("set names utf8&q ...

  3. 修改Tomcat编码方式的两种方法

    转载自   修改Tomcat编码方式的两种方法 方法一:推荐,不会影响到其它项目 见我的另一篇博客:http://www.cnblogs.com/x_wukong/p/3292664.html 修改方 ...

  4. opengl中的Floatbuffer和IntBuffer与java中数据的存储方式不同的解决方法,编辑一个自己的BufferUtil工具类

    opengl中的Floatbuffer和IntBuffer与java中数据的存储方式不同的解决方法,编辑一个自己的BufferUtil工具类 参考文章: (1)opengl中的Floatbuffer和 ...

  5. java生成html 控制编码方式_JAVA中文字符编码问题详解 控制台输出

    JAVA的中文字符乱码问题一直很让人头疼.特别是在WEB应用中.网上的分析文章和解决方案都很多,但总是针对某些特定情况的.很多次遇到乱码问题后, 经过极为辛苦的调试和搜索资料后终于解决,满以为自己已经 ...

  6. JS 和 Java 中URL特殊字符编码方式

    前几天遇到url特殊字符编码的问题,在这里整理一下: JavaScript 1.  编码 escape(String) 其中某些字符被替换成了十六进制的转义序列. 解码 unescape(String ...

  7. JAVA中默认的编码方式是Unicode是什么意思?

    编码问题存在两个方面:JVM之内和JVM之外. 1.Java文件编译后形成class 这里Java文件的编码可能有多种多样,但Java编译器会自动将这些编码按照Java文件的编码格式正确读取后产生cl ...

  8. 如何使mysql编码格式_Mysql设置编码方式及基本操作

    介绍 Mysql 默认安装后的编码方式默认一般是Latin, 在插入汉字数据或读取的时候,存在乱码或报错.这时候,只需要修改编码方式为UTF8,统一数据库和数据表的编码方式. 如何修改 1. 复制My ...

  9. java 字节流设置编码方式_java字节流和字符流编码格式(转自姚刚)

    /** * 字节流和字符流的区别, * (1)字符流带有缓冲,必须flush或close后数据才会从缓存中写入磁盘文件. * 字节流直接写文件. * (2)字符流在创建流的时候,指定编码,字节流在文件 ...

最新文章

  1. Android开发之Buidler模式初探结合AlertDialog.Builder解说
  2. python 文件获取绝对路径
  3. python画笑脸-python 学习笔记——学会用turtle画笑脸
  4. sql server 批量删除临时表
  5. 程序员每周该做的事情!
  6. 谈谈我对Java中CallBack的理解
  7. 大数据之_亿级分布式日志管理ELK_工作笔记001_ELK认识介绍
  8. AQM-8125空气质量监测系统
  9. XML的三大解析方式解析
  10. 一个老程序员的忠告:千万不要一辈子靠技术生存
  11. 程序员婚恋那点事儿(四):程序员与程序媛的婚礼
  12. crt和zoc7的快捷键记录
  13. 三种设置session有效时间的方法
  14. TLV自定义通信协议的编码和解析
  15. JDK1.8版本linux、Windows64下载
  16. 程序员惨遭996,注册Github域名炮轰996工作模式
  17. 求一元二次方程的根(C语言实现)
  18. 电脑怎么格式化?跟着这2步就可以啦!
  19. 怎么把图片放大并且清晰?
  20. 利用python制作一个雷诺数图形界面计算器并打包生成exe

热门文章

  1. 开源软硬一体OpenCV AI Kit(OAK)
  2. 编写可调模板并使用Auto-tuner自动调谐器
  3. 双圆弧插值算法(一)
  4. [JavaScript] JavaScript 运算符与流程控制
  5. 不能从农行服务器获取配置文件,#新手入门#请问,农行网银用的好好的突然出现这个就不能用了怎么解决呢?谢谢...
  6. python的服务器、客户端被拒绝访问_python – uWSGI服务器日志…权限被拒绝读取......
  7. Ubuntu 系统开机黑屏提示the root filesystem on /dev/sdb2 requires a manual fsck
  8. java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
  9. Android 购物车图片上面添加数字
  10. SimpleDateFormat 日期,时间格式转化