<div class="iteye-blog-content-contain" style="font-size: 14px"></div>
最近用socket通讯,用IO流发送接收数据,双方约定好了接口规范,字段的长度,但是发现发过来的数据老是报数组溢出错误,后来发现windows和linux的默认编码格式不一样,前者是gbk,后者是utf-8,而一个中文gbk是2个字节,utf-8是3个字节,用getBytes()将字符串转换为字节数组,若不指定编码方式,则会根据平台的默认编码方式,故若是不指定编码格式的话的话,那么将程序部署到linux下后一个中文汉字就是3个字节,此时若你指定的byte[80]接收40个汉字,那么此时用getBytes()转换后实际上是有120个字节,就会导致溢出。
下面举一个简单的例子(在windows下):
public class Test { public static void main(String[] args) { String a="哈哈"; try { byte[] aa = a.getBytes("GB2312"); byte[] ab = a.getBytes("UTF-8"); byte[] ac = a.getBytes(); System.out.println(aa.length); System.out.println(ab.length); System.out.println(ac.length); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 输出是:4 6 4
相关推荐
### Java中的String类getBytes()方法详解与实例 #### 简介 在Java编程语言中,`String`类是处理文本数据的核心类之一。它表示一个不可变的字符序列,这意味着一旦创建了一个`String`对象,其内容就不能被更改。在...
在Java编程语言中,`String`类是使用最频繁的类之一,它代表不可变的字符序列。本文将深入解析`String`类的一些常用方法,帮助开发者更好地理解和使用这个核心类。 1. **构造方法** - `String()`:创建一个空字符...
### Java中String、十六进制String与byte[]之间的相互转换 在Java开发中,字符串(String)、十六进制表示的字符串以及字节数组(byte[])之间的转换是非常常见的需求,尤其是在处理网络通信、文件读写等场景下。...
Java中的String类提供了丰富的字符串操作...以上是Java中String类的一些常用方法,它们是进行字符串操作时的基础工具,每一个方法都根据不同的使用场景来实现相应的功能,从而满足在Java开发中对字符串的各种处理需求。
### Java中String类的常用方法详解 在Java编程语言中,`String` 类是一个非常重要的类,用于表示不可变的字符序列。它提供了丰富的内置方法,使得开发人员能够轻松地处理字符串相关的操作。本文将详细介绍Java中`...
`String`类在Java中扮演着至关重要的角色,其丰富的功能和方法使得处理文本数据变得既方便又高效。理解并熟练掌握`String`类的构造函数和各种操作方法,对于任何Java程序员来说都是必不可少的技能。通过本文的介绍,...
在Java中,`String`默认使用的是Unicode编码,但在实际应用中,经常需要将`String`转换为特定字符集下的`byte[]`。 - **Java I/O操作**: 在Java中进行I/O操作时,通常涉及到`InputStream`和`OutputStream`等类,这些...
本文将深入探讨Java中设置String字符串编码的方法,帮助开发者更好地理解和使用这些功能。 首先,我们需要理解什么是字符编码。字符编码是将字符(如字母、数字和符号)与数字或二进制值关联的系统,例如ASCII、...
Java中的`String`类是处理文本数据的核心工具,它提供了丰富的功能来操作和管理字符串。字符串在Java中是不可变的,这意味着一旦创建了一个`String`对象,就不能更改它的内容。以下是对`String`类中一些常用方法的...
如果我们不指定编码方式,那么getBytes()方法将使用String类型的默认编码方式来将字符串编码为字节数组。 结论 Java中String类型的默认编码方式是与本地系统的编码方式相关的。我们需要了解String类型的默认编码...
在Java编程语言中,String类是处理文本字符串的核心类,提供了丰富的常用方法来操作和处理字符串。以下是对标题和描述中提到的一些Java String类的方法的详细说明: 1. `length()`:这个方法返回字符串的长度,即...
在Java编程中,String对象和Byte类型的转换是常见的操作,特别是在网络编程中,因为网络通信通常涉及字节流的处理。下面将详细讲解Java中如何进行这两种类型之间的转换,并探讨其在网络编程中的应用。 首先,让我们...
在本文中,我们将详细介绍如何使用 Java 语言来提取 Word 文档的内容,并将其返回为字符串。我们将通过两种方式来实现这个目标,分别是使用 Java 流读取 Word 内容和使用 Jacob 读取 Word 内容。 使用 Java 流读取 ...
总之,`char`和`String`在Java中扮演着重要角色,它们提供的丰富函数方法使得处理文本数据变得简单高效。理解和熟练使用这些方法是Java编程的基本功,对于开发涉及文本处理的应用尤其关键。通过深入学习和实践,...
了解 String 的特点和使用方法是 Java 开发者必备的技能之一。下面我们将对 10 个 Java 经典的 String 面试题进行详细解答。 1. String 是基本数据类型吗? 答案:String 不是基本数据类型。Java 中的基本数据类型...
13. 是否可以在Java的switch case语句中使用字符串? 从Java 7开始,可以在switch case语句中使用字符串。 14. Java中的字符串方法有哪些? Java中的字符串方法有多种,包括toUpperCase()、toLowerCase()、trim()...
Java String 类型 API 测试代码 1.String和char[]之间的转换 toCharArray(); 2.String和byte[]之间的转换 getBytes() Arrays工具类 : Arrays.toString(names) String类 String replace(char oldChar, ...
本文将深入解析Java中`String` 类的一些常见方法,以帮助开发者更好地理解和利用这些方法。 1. **构造方法**: - `public String(char[] c, begin, length)`:此构造函数允许我们从给定的字符数组中创建一个新的`...
在上面的代码中,我们使用join()方法将字符串数组连接成一个字符串,并使用getBytes()方法将其转换为字节数组。最后,使用BufferedOutputStream将字节数组写入到文件中。 需要注意的是,Excel 2007以下版本不支持...
这里我们将深入探讨如何在Java的main方法中实现这个功能,以及相关的HTTP请求和响应处理。 首先,Java中发送HTTP POST请求通常会用到`HttpURLConnection`类或者第三方库如Apache HttpClient或OkHttp。下面我们将...