首页 > 其他分享 >解决response获取的PrintWriter输出的中文乱码

解决response获取的PrintWriter输出的中文乱码

时间:2023-12-07 10:25:14浏览次数:32  
标签:PrintWriter utf E9% 乱码 浏览器 response

 

出现乱码代码

@Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        //1.获取字符输出流
        PrintWriter pw = response.getWriter();
        pw.write("你好 response");
    }

 

问题分析
出现问题这样的问题的原因是浏览器默认的为我们系统使用的字符集,一般默认为GBK,而PrintWriter对象是我们从response获取而来的,而服务器默认的字符集为utf-8,所以就会出现乱码情况,如果是自己创建的PrintWriter对象的话,就不会出现这种情况.所以只需要让浏览器知道服务器使用的是什么编码,并且对浏览器的请求头content-type进行修改就可以解决编码不一致的问题了

修改后的代码

@Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //在获取流对象之前告诉浏览器使用什么字符集
        response.setCharacterEncoding("utf-8");

        //告诉浏览器,服务器发送的消息体的数据的编码
        response.setHeader("content-type","text/html;charset=utf-8");
        
        //1.获取字符输出流
        PrintWriter pw = response.getWriter();
        pw.write("你好 response");
    }

 

 

补充:
除了以上的方法,还有更简单的方法,就是直接设置 response.setContentType(“text/html;charset=utf-8”);
其效果也是一样的

//简单的设置编码的方法
response.setContentType("text/html;charset=utf-8");

 

https://blog.csdn.net/qq_46274901/article/details/123167231#:~:text=%E5%87%BA%E7%8E%B0%E9%97%AE%E9%A2%98%E8%BF%99%E6%A0%B7%E7%9A%84%E9%97%AE,%E7%A0%81%E4%B8%8D%E4%B8%80%E8%87%B4%E7%9A%84%E9%97%AE%E9%A2%98%E4%BA%86


 

标签:PrintWriter,utf,E9%,乱码,浏览器,response
From: https://www.cnblogs.com/softidea/p/17881119.html

相关文章

  • ubuntu中vim乱码以及执行shell脚本时出现乱码
    vim打开文件中文出现乱码情况,可以参考如下办法:在vim/usr/share/vim/vimrc文件末尾中加入(这个vimrc文件是Vim的系统级配置文件、文档、插件、语法高亮定义、颜色方案等)setencoding=utf-8setfileencodings=utf-8,gbksettermencoding=utf-8保存退出就ok了 如果还不行......
  • Tomcat-idea使用tomcat创建web项目-跳转网页出现乱码
    Tomcat-idea使用tomcat创建web项目-跳转网页出现乱码:1..jsp内的中文跳转网页后出现以下情况:2. 看下图内容是否缺少重要内容:  若没有:将代码copy进.jsp此处: <%@pagecontentType="text/html;charset=UTF-8"language="java"%>   这是解决方式......
  • RestTemplate 请求 webservice 中文乱码问题解决【问题解决】
    添加一个Converter设置UTF-8编码@ConfigurationpublicclassRestTemplateConfig{@BeanpublicRestTemplaterestTemplate(){RestTemplaterestTemplate=newRestTemplate();//添加自定义的ClientHttpRequestInterceptor全局JSON請......
  • 解决powershell conda init初始化乱码无法使用
    在powershell中使用condainit如果出现了下图最后一行的输出,且之后每次使用conda都提示你执行初始化,那就是跟题主一样的情况。原因有两个:1、你的“文档”库文件夹处在中文目录下2、windows默认编码不是UTF-8,但是conda初始化的时候是按UTF-8编码去生成powershell的配置文件这......
  • Python中execjs执行JS代码出现中文乱码
    1、乱码场景新建文件code.js,详情如下:functionfun(){return"我是fun函数";}在Python中执行此JS代码:1importexecjs23#读取js4withopen("code.js",encoding="utf8")asf:5jsCode=f.read()6print(jsCode)78#编辑......
  • kettle从入门到精通 第二十二课 kettle carte web服务中文乱码
    在windows上面carte服务的canvas画布展示的中文正常,但是在linux上面中文展示乱码,如下所示:原因:linux机器缺少字体所致。kettle源码中使用字体: 解决方法: 安装字体即可,无需重启机器,如果不生效,试着重启下carte服务,参考如下连接安装字体https://blog.csdn.net/weixin_42477......
  • 获取HttpServletRequest、HttpServletResponse的几种方式
    获取HttpServletRequest、HttpServletResponse的几种方式获取HttpServletRequest、HttpServletResponse的几种方式1、可以封装为静态方法ServletRequestAttributesservletRequestAttributes=(ServletRequestAttributes)RequestContextHolder.getRequestAttributes();H......
  • 永久解决matplotlib中文乱码问题
    永久解决matplotlib中文乱码问题1.拷贝Simhei.ttf字体文件至以下目录/root/software/anaconda3/envs/tensorflow/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf#根据自己系统酌情设置2.设置matplotlibrc文件(tensorflow)[root@bigdata~]#python>>>im......
  • 解决Jmeter响应报文中文乱码的问题-3种解决办法
    1.遇到问题:Jmeter在访问接口的时候,响应内容如果有中文可能会显示乱码。   2.问题分析:响应页面没有做编码处理,JMeter默认按照ISO-8859-1编码格式进行解析。   3.解决方案:办法一:通过后置处理器BeanShellPostProcessor 1)在线程组中添加后置处理器:Be......
  • jmeter 响应乱码
    Jmeter在做接口测试的时候的,如果接口响应的内容中有中文,jmeter的响应内容很可能显示乱码,为了规避这种出现乱码的问题,就要对jmeter的响应结果进行编码处理。打开jmeter进行接口、压力、性能等测试,出现以下乱码问题,如图解决方法一(临时修改):1、就是通过添加后置处理器,输入prev.setDa......