下面的代码是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中文乱码问题,有详细的解释说明,希望对需要的人有所帮助
要解决 Ubuntu 下使用 Tomcat 搭建网站出现中文乱码的问题,需要统一服务器的字符编码,包括 Linux 服务器、Tomcat 配置文件和 MySQL 数据库。通过统一字符编码,可以确保服务器的字符编码是一致的,避免乱码的出现...
解决 Tomcat 下中文乱码问题 在本文中,我们将讨论如何解决 Tomcat 下中文乱码问题。该问题是由于 Tomcat 默认的字符编码设置不正确引起的。我们将通过设置 Connector 元素的 URIEncoding 属性和在过滤器中设置字符...
标题中的“tomcat下catalina.out日志乱码问题处理”主要涉及的是在Tomcat服务器运行过程中,输出的日志文件`catalina.out`中,中文字符显示为乱码的状况。这通常是由于字符编码不匹配导致的,因为Tomcat在读取或写入...
当Tomcat处理这些中文内容时,如果没有正确地转换编码,就会出现乱码问题。 #### 原因分析 1. **默认字符集问题**:Tomcat服务器默认采用ISO-8859-1字符集进行编码解码,该字符集并不支持中文字符。 2. **配置文件...
总结来说,解决Tomcat下的中文乱码问题,关键在于确保JSP页面的编码与服务器设置一致,并在处理表单提交时正确设置请求的字符编码。在实际开发中,推荐使用UTF-8作为统一的编码标准,因为UTF-8能够兼容各种语言,...
综上所述,通过合理设置JSP页面编码、配置请求过滤器以及进行必要的编码转换,可以有效解决Tomcat环境下中文乱码的问题。在实际应用中,还需要根据具体情况选择合适的解决方案,并注意保持前后端编码的一致性。
总的来说,解决Tomcat中文乱码问题需要综合考虑请求、响应以及日志输出等多个环节的字符编码设置。通过以上步骤和注意事项,大部分情况下可以有效地解决乱码问题。如果仍然存在问题,可能需要进一步排查应用程序本身...
标题中的“关于tomcat乱码以及tomcat jvm 内存溢出问题的解决方案和理论”涉及了两个关键的IT概念:Tomcat服务器的字符编码问题和Java虚拟机(JVM)内存管理的问题。让我们逐一深入探讨这两个主题。 首先,我们来...
一般我们所装的linux服务器,是中文版的,所以系统环境的编码是gbk,然而我们项目的编码是UTF-8,这就必须在tomcat的server.xml文件中修改,在两个地方添加 URIEncoding="UTF-8",具体代码如下:
将cmd编码格式永久改为utf-8,解决部署以后tomcat乱码问题
在 Docker 容器中部署 Tomcat 时,可能会遇到中文乱码的问题,这是由于 Docker 容器的 locale 设置导致的。在本文中,我们将介绍如何解决这个问题。 什么是 locale? locale 是操作系统中用于描述语言环境的设置,...
在处理Web应用程序时,尤其是使用Apache Tomcat作为应用服务器的情况下,遇到中文字符乱码的问题是非常常见的。这一问题通常发生在通过GET方法传递含有中文参数的情况。由于Tomcat默认采用ISO-8859-1编码处理请求,...
本文将详细探讨WebLogic与Tomcat环境下解决下载附件乱码问题的方法。 #### 一、问题背景 在Web应用程序中,当用户点击下载链接后,浏览器会根据服务器返回的信息来判断如何处理这个下载请求。如果服务器返回的...
tomcat编码格式设置,通过设置编码,解决网页中数据传输乱码问题
TOMCAT乱码问题解决方法 TOMCAT乱码问题是jsp网页制作与开发中常见的问题。造成乱码的原因是tomcat对表单提交和GET请求的处理方式不同。Tomcat4和Tomcat5处理乱码的方法不同,在Tomcat5中,需要使用Filter设置字符...
在IT行业中,尤其是在Web开发领域,Tomcat是一个广泛使用的开源应用服务器,主要处理Java Servlet和JSP...通过这些步骤,开发者能够有效避免和解决Tomcat 5下的文字乱码问题,使得JSP日志和其他文本数据能够正常显示。
例如,在 Tomcat 或 WebLogic 服务器中,request 和 response 的编码方式可能不同,这将导致中文乱码问题的出现。 解决方案 解决中文乱码问题最好的方法是增加过滤器。关键代码只有三行: ```java response.set...