`
PolyAngel
  • 浏览: 114289 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
文章分类
社区版块
存档分类
最新评论

关于tomcat下的编码问题

阅读更多
下面的代码是copy尚学堂张志宇老师的讲课资料,个人觉得比较经典就贴出来了。

public class TestB {
static String zhongwen = "中文";
static byte[] bytes = null;

public static void main(String[] args) throws Exception {
// GBK
//main1();
// utf-8
//main2();
// GBK-->utf-8-->GBK
//main3();
// GBK-->iso8859-1-->utf-8-->iso8859-1-->GBK
main4();

}
// GBK
public static void main1() throws Exception {
bytes = zhongwen.getBytes("GBK");
for (int i = 0; i < bytes.length; i++) {
System.out.println(Integer.toHexString(bytes[i]));
}
System.out.println(new String(bytes, "GBK"));
}
// utf-8
public static void main2() throws Exception {
bytes = zhongwen.getBytes("utf-8");
for (int i = 0; i < bytes.length; i++) {
System.out.println(Integer.toHexString(bytes[i]));
}
System.out.println(new String(bytes, "utf-8"));
}
// GBK-->utf-8-->GBK
public static void main3() throws Exception {

bytes = zhongwen.getBytes("GBK");
System.out.println("--------GBK----------");
for (int i = 0; i < bytes.length; i++) {
System.out.println(Integer.toHexString(bytes[i]));
}

bytes = zhongwen.getBytes("utf-8");
byte [] bytes_copy = bytes;
System.out.println("-------utf-8--------");
for (int i = 0; i < bytes.length; i++) {
System.out.println(Integer.toHexString(bytes[i]));
}

//错误的组装方法
System.out.println("-------error GBK--------");
zhongwen = new String(bytes, "GBK");
System.out.println(zhongwen);
bytes = zhongwen.getBytes("GBK");
for (int i = 0; i < bytes.length; i++) {
System.out.println(Integer.toHexString(bytes[i]));
}
//正确的组装方法
System.out.println("-------GBK--------");
System.out.println(new String(bytes_copy, "utf-8"));
}
// GBK-->iso8859-1-->utf-8-->iso8859-1-->GBK
public static void main4() throws Exception {

//最开始是GBK
bytes = zhongwen.getBytes("GBK");
System.out.println("--------GBK----------");
for (int i = 0; i < bytes.length; i++) {
System.out.println(Integer.toHexString(bytes[i]));
}

//被组装成了iso8859-1,new出的字符串对象有问题,但是字节内容没变
System.out.println("-------iso8859-1--------");
zhongwen = new String(zhongwen.getBytes("GBK"), "iso8859-1");
System.out.println(zhongwen);
bytes = zhongwen.getBytes("iso8859-1");
for (int i = 0; i < bytes.length; i++) {
System.out.println(Integer.toHexString(bytes[i]));
}
//转换成utf-8在网络上传输,一个byte转换为两个字节,所以一共8个字节
bytes = zhongwen.getBytes("utf-8");
System.out.println("-------utf-8--------");
for (int i = 0; i < bytes.length; i++) {
System.out.println(Integer.toHexString(bytes[i]));
}

//server端接收到utf-8,首先组装成iso8859-1,new出的字符串对象有问题,显示4个问号
System.out.println("-------server--iso8859-1------");
zhongwen = new String(bytes, "utf-8");
System.out.println(zhongwen);
bytes = zhongwen.getBytes("iso8859-1");
for (int i = 0; i < bytes.length; i++) {
System.out.println(Integer.toHexString(bytes[i]));
}

//以iso8859-1得到字节,并组装成GBK
System.out.println("-------GBK--------");
System.out.println(new String(bytes, "GBK"));
}



public static void ____________________main() throws Exception {
System.out.println(System.getProperty("file.encoding"));
System.out.println(System.getProperty("user.language"));
System.out.println(System.getProperty("user.region"));
}

}
分享到:
评论

相关推荐

    解决tomcat中文乱码问题

    解决tomcat中文乱码问题,有详细的解释说明,希望对需要的人有所帮助

    Ubuntu下使用Tomcat搭建网站出现中文乱码的问题.docx

    要解决 Ubuntu 下使用 Tomcat 搭建网站出现中文乱码的问题,需要统一服务器的字符编码,包括 Linux 服务器、Tomcat 配置文件和 MySQL 数据库。通过统一字符编码,可以确保服务器的字符编码是一致的,避免乱码的出现...

    解决tomcat下中文乱码问题

    解决 Tomcat 下中文乱码问题 在本文中,我们将讨论如何解决 Tomcat 下中文乱码问题。该问题是由于 Tomcat 默认的字符编码设置不正确引起的。我们将通过设置 Connector 元素的 URIEncoding 属性和在过滤器中设置字符...

    tomcat 下catalina.out 日志乱码问题处理

    标题中的“tomcat下catalina.out日志乱码问题处理”主要涉及的是在Tomcat服务器运行过程中,输出的日志文件`catalina.out`中,中文字符显示为乱码的状况。这通常是由于字符编码不匹配导致的,因为Tomcat在读取或写入...

    解决Tomcat中文乱码

    当Tomcat处理这些中文内容时,如果没有正确地转换编码,就会出现乱码问题。 #### 原因分析 1. **默认字符集问题**:Tomcat服务器默认采用ISO-8859-1字符集进行编码解码,该字符集并不支持中文字符。 2. **配置文件...

    如何解决Tomcat下中文乱码问题?

    总结来说,解决Tomcat下的中文乱码问题,关键在于确保JSP页面的编码与服务器设置一致,并在处理表单提交时正确设置请求的字符编码。在实际开发中,推荐使用UTF-8作为统一的编码标准,因为UTF-8能够兼容各种语言,...

    解决tomcat中文乱码问题.doc

    综上所述,通过合理设置JSP页面编码、配置请求过滤器以及进行必要的编码转换,可以有效解决Tomcat环境下中文乱码的问题。在实际应用中,还需要根据具体情况选择合适的解决方案,并注意保持前后端编码的一致性。

    tomcat显示出现中文乱码问题.docx

    总的来说,解决Tomcat中文乱码问题需要综合考虑请求、响应以及日志输出等多个环节的字符编码设置。通过以上步骤和注意事项,大部分情况下可以有效地解决乱码问题。如果仍然存在问题,可能需要进一步排查应用程序本身...

    关于tomcat乱码以及tomcat jvm 内存溢出问题的解决方案和理论

    标题中的“关于tomcat乱码以及tomcat jvm 内存溢出问题的解决方案和理论”涉及了两个关键的IT概念:Tomcat服务器的字符编码问题和Java虚拟机(JVM)内存管理的问题。让我们逐一深入探讨这两个主题。 首先,我们来...

    tomcat值乱码解决

    一般我们所装的linux服务器,是中文版的,所以系统环境的编码是gbk,然而我们项目的编码是UTF-8,这就必须在tomcat的server.xml文件中修改,在两个地方添加 URIEncoding="UTF-8",具体代码如下:

    将cmd编码格式永久改为utf-8,解决部署以后tomcat乱码问题

    将cmd编码格式永久改为utf-8,解决部署以后tomcat乱码问题

    Docker容器部署tomcat出现中文乱码.docx

    在 Docker 容器中部署 Tomcat 时,可能会遇到中文乱码的问题,这是由于 Docker 容器的 locale 设置导致的。在本文中,我们将介绍如何解决这个问题。 什么是 locale? locale 是操作系统中用于描述语言环境的设置,...

    修改Tomcat默认编码消除get方式传递参数出现中文乱码

    在处理Web应用程序时,尤其是使用Apache Tomcat作为应用服务器的情况下,遇到中文字符乱码的问题是非常常见的。这一问题通常发生在通过GET方法传递含有中文参数的情况。由于Tomcat默认采用ISO-8859-1编码处理请求,...

    weblogic和tomcat 下载附件乱码问题

    本文将详细探讨WebLogic与Tomcat环境下解决下载附件乱码问题的方法。 #### 一、问题背景 在Web应用程序中,当用户点击下载链接后,浏览器会根据服务器返回的信息来判断如何处理这个下载请求。如果服务器返回的...

    tomcat编码格式设置

    tomcat编码格式设置,通过设置编码,解决网页中数据传输乱码问题

    TOMCAT乱码问题

    TOMCAT乱码问题解决方法 TOMCAT乱码问题是jsp网页制作与开发中常见的问题。造成乱码的原因是tomcat对表单提交和GET请求的处理方式不同。Tomcat4和Tomcat5处理乱码的方法不同,在Tomcat5中,需要使用Filter设置字符...

    彻底解决 Tomcat 5 下文字乱码问题 - JSP日志 - ※一路风尘※

    在IT行业中,尤其是在Web开发领域,Tomcat是一个广泛使用的开源应用服务器,主要处理Java Servlet和JSP...通过这些步骤,开发者能够有效避免和解决Tomcat 5下的文字乱码问题,使得JSP日志和其他文本数据能够正常显示。

    Tomcat和weblogic中文乱码问题解决方案

    例如,在 Tomcat 或 WebLogic 服务器中,request 和 response 的编码方式可能不同,这将导致中文乱码问题的出现。 解决方案 解决中文乱码问题最好的方法是增加过滤器。关键代码只有三行: ```java response.set...

Global site tag (gtag.js) - Google Analytics