关于java中文乱码问题,我有话要说。

最近这两天改两个项目的bug,都遇到了中文乱码的问题,现将问题和解决方案都汇总于此,供大家参考。

如果最开始你把整个项目的编码和tomcat的编码都设置成一样,例如GBK或者GB2312或者UTF-8,应该前后方交互是不会出问题的,但是也会有出现像我这样中途给项目添功能,然后让中文乱码的,这就不知道什么原因导致的了,只知道怎么解决。

问题1:从后台传入前台中文乱码。

解决方案:在处理数据之前,在后台设置

response.setCharacterEncoding("UTF-8"); 这里的编码可以自己稍微试一下,常见的有utf-8,ISO-8859-1,GB2312

前台也要设置编码:在Head里面设置

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

问题二:从前台传入后台中文乱码

解决方案:这个问题就比较头疼了,我现在有三种问题可以解决。

1)设置request

request.setCharacterEncoding("utf-8");和设置response一样一样的。

2) 把字符转换成字符流的形式进行转码,把使用中文的字符串从前台拿到之后进行如下操作,里面的编码方式因人而异

new String(str.getBytes("gbk"),"utf-8");

3)使用StringUtil类进行转码

这解决方案明天再说

时间: 2024-11-02 20:12:23

关于java中文乱码问题,我有话要说。的相关文章

关于c++与java中文乱码问题分析与解决

关于c++与java中文乱码问题分析与解决 DionysosLai([email protected])  2014/8/1 问题分析: 之所以会出现中文乱码问题,归根结底在于中文的编码与英文的编码方式存在差异. 在java内部是使用16bit的unicode编码(即utf-16)来表示字符串,无论英文还是中文都是2字节. C/C++使用的是原始数据,ascii是一个字节,中文一般是GB2312编码,用2个字节表示一个汉字. Jni内部是使用utf-8编码表示字符串的,utf-8是扁长的unic

文《关于c++与java中文乱码问题分析与解决》中一个bug分析

文<关于c++与java中文乱码问题分析与解决>中一个bug分析 DionysosLai([email protected]) 2014/10/21 在前几篇一博客<关于c++与java中文乱码问题分析与解决>,地址如下:http://blog.csdn.net/dionysos_lai/article/details/38389765.文中详细介绍了c++与java数据传递时,为何会出现中文乱码的原因,并提出了适当的解决方法.方法如下: int CCDirector::GBKTo

java中文乱码解决方法汇总

publicstaticvoidmain(String[]argv){ try{ System.out.println("中文");//1 System.out.println("中文".getBytes());//2 System.out.println("中文".getBytes("GB2312″));//3 System.out.println("中文".getBytes("ISO8859_1″));

java中文乱码解决之道(一)-----认识字符集

沉寂了许久(大概有三个多月了吧),LZ"按捺不住"开始写博了! java编码中的中文问题是一个老生常谈的问题了,每次遇到中文乱码LZ要么是按照以前的经验修改,要么则是baidu.com来解决问题.阅读许多关于中文乱码的解决办法的博文后,发现对于该问题我们都(更加包括我自己)没有一个清晰明了的认识,于是LZ想通过这系列博文(估计只有几篇)来彻底分析.解决java中文乱码问题,如有错误之处望各位同仁指出!当然,此系列博文并非LZ完全原创,都是在前辈基础上总结,归纳,如果雷同纯属借鉴-- 问

Java中文乱码处理

一.处理get方法中文乱码 方法1   String name = new String(request.getParameter("userName").getBytes("iso-8859-1")); 方法2   在tomcat的conf文件下server.xml中redirectPort="8443"位置后添加: URIencoding="GBK" 二.处理post方法中文乱码 request.setCharacte

java中文乱码解决之道(七)-----JSP页面编码过程

我们知道JSP页面是需要转换为servlet的,在转换过程中肯定是要进行编码的.在JSP转换为servlet过程中下面一段代码起到至关重要的作用. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="GBK" %> 在上面代码中有两个地方存在编码:pageEncoding.contentType的charset.其中pageEnco

java中文乱码解决之道(二)-----字符编码详解:基础知识 + ASCII + GB**

在上篇博文(java中文乱码解决之道(一)-----认识字符集)中,LZ简单介绍了主流的字符编码,对各种编码都是点到为止,以下LZ将详细阐述字符集.字符编码等基础知识和ASCII.GB的详情. 一.基础知识 在了解各种字符集之前我们需要了解一些最基础的知识,如:编码.字符.字符集.字符编码基础知识. 编码 计算机中存储的信息都是用二进制表示的,我们在屏幕上所看到文字.图片等都是通过二进制转换的结果.编码是信息从一种形式或格式转换为另一种形式的过程,通俗点讲就是就是将我们看到的文字.图片等信息按照

Java中文乱码原因

Java在中文环境中乱码无处不在,而且出现的时间和位置也包涵广泛,具体的解决方法也是千奇百怪. 但是如果能理清其中的脉络,理解字符处 理的过程,对于解决问题很有指导意义,不至于解决了问题也不知道为什么. 其实,原因不外乎出在String输入时和输出时. 首先,Java中的任何String都是以UNICODE格式存在的. 很多人因为在GBK环境中使用String,会误以为String是GBK格式,实际上Java的String类中并没有存储CharSet信息的字段, 所有String中的字符只会以U

Java中文乱码&amp;特殊字符解决方案

Java中文乱码&特殊字符解决方案 相信很多朋友遇到过Java的乱码问题,最近我也在解决一个"使用文本生成图片过程中中文以及特殊字符乱码"的问题:花了我大量时间,Debug了sun.font.sun.awt下面的各种源码,终于搞懂了其机制,解决了目前次问题:现在把问题解决过程给写下来,做个记录,以免以后再次遇到. 遇到的问题 下面是我想要执行的代码(经过极度简化,但是意思没变): 1 public static void main(String[] args) throws I

cmd运行Java中文乱码,无法加载主类Error: Could not find or load main class

网上说了好多方法,只说我用了的 cmd运行Java中文乱码 设置环境变量--系统环境变量 添加条目:JAVA_TOOL_OPTIONS 值:-Dfile.encoding=UTF-8 -Duser.language=en 无法加载主类 去掉package * 假如类test在src目录下.编译完之后,在src同级目录下运行 ··· java src.test ··· 原文地址:https://www.cnblogs.com/so-easy/p/11369745.html