博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
中文乱码总结
阅读量:5986 次
发布时间:2019-06-20

本文共 1806 字,大约阅读时间需要 6 分钟。

首先考虑数据库、xml配置、jsp页面等的字符集charset是否统一。在字符集统一的情况下,各种中文乱码可能出现的原因。

 

Web页面乱码

1、response的ContentType属性

比如可以在jsp页面中直接设置

  <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

在<head>标签中添加

  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

还比如

  在Controller中直接使用 response.getWriter().write(jsonArray.toString()); 乱码
  需要加上 response.setContentType("text/html;charset=utf-8");

response.setContentType()的作用是使客户端浏览器,区分不同种类的数据,并根据不 

同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据。 
例如:web浏览器就是通过MIME类型来判断文件是GIF图片,通过MIME类型来处理json字符串。 
Tomcat的安装目录\conf\web.xml 中就定义了大量MIME类型 ,可以参考。 
  response.setContentType(“text/html; charset=utf-8”); html 
  response.setContentType(“text/plain; charset=utf-8”); 文本 
  esponse.setContentType(“text/javascript; charset=utf-8”); json数据 
  response.setContentType(“application/xml; charset=utf-8”); xml数据

 

2、xml配置encoding

SpringMVC配置视图解析器编码

web.xml中配置过滤器

CharacterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true

 

3、是否是JS导致了乱码

  看看有没有字符集charset的地方,与代码中的不一致

也可以直接给js添加字符集

  <script type="text/javascript" language="javascript" src="scripts/function.js" charset="gb2312"></script>

 

读取properties文件乱码

流的转换中常常出现中文乱码,解决办法:

1、在读的时候注意添加字符集

BufferedReader bf = new BufferedReader(new InputStreamReader(is, "UTF-8"));

InputStream is = resource.getInputStream();try {     BufferedReader bf = new BufferedReader(new InputStreamReader(is, "UTF-8"));     props.load(bf);} finally {     s.close();}

 

2、先转换成byte[]数组,再转换成String

 

打印到PDF字体乱码

服务器上没有对应的字体

 

原创文章,欢迎转载,转载请注明出处!

你可能感兴趣的文章
Redis教程(一):Redis简介
查看>>
作为程序员, 你结对编程过吗?(结对编程的意义,经济学价值和个人看法)...
查看>>
JVM内存异常与常用内存参数设置总结
查看>>
mysql 编码错误修改
查看>>
快速上手RaphaelJS--Instant RaphaelJS Starter翻译(二)
查看>>
asp.net中获取网站根目录和物理路径的方法
查看>>
Android 开发中常用的Eclipse快捷键
查看>>
第三次作业
查看>>
ASP.NET缓存全解析1 转自网络原文作者李天平
查看>>
【Unity Shader学习笔记】(四)绘制Julia奇幻图形
查看>>
UML架构(转载)
查看>>
解决bash: mysql: command not found 的方法
查看>>
EF for Mysql
查看>>
java第四章:数组
查看>>
WEB服务器安装oracle jdbc
查看>>
DevExpress学习之ASPxGridView后台增加列
查看>>
例题6-20 UVa1599 Ideal Path(两次BFS)
查看>>
SOCKIT 在make时出现(target pattern contains no % stop)???
查看>>
java_instanceof运算符的总结
查看>>
pip install GitHub package
查看>>