`
hz_chenwenbiao
  • 浏览: 1008017 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

String的getBytes方法和String(byte[] bytes,Charset (转)

阅读更多

String的getBytes方法和String(byte[] bytes,Charset charset)组合使用解决jsp传递中文参数乱码的情况
public byte[] getBytes(Charset charset)
使用给定的 charset 将此 String 编码到 byte 序列,并将结果存储到新的 byte 数组。

此方法总是使用此字符集的默认替代 byte 数组替代错误输入和不可映射字符序列。如果需要对编码过程进行更多控制,则应该使用 CharsetEncoder 类。

 

参数:
charset - 用于编码 String 的 Charset
返回:
所得 byte 数组
 
public String(byte[] bytes,Charset charset)
通过使用指定的 charset 解码指定的 byte 数组,构造一个新的 String。新 String 的长度是字符集的函数,因此可能不等于 byte 数组的长度。
此方法总是使用此字符集的默认替代字符串替代错误输入和不可映射字符序列。如果需要对解码过程进行更多控制,则应该使用 CharsetDecoder 类。

参数:
bytes - 要解码为字符的 byte
charset - 要用来解码 bytes 的 charset
for exam:
String name = request.getParameter(souceName);
String _name = new String(name.getBytes("iso-8859-1"), "gbk");
这里应该是浏览器会将请求URL,转成一个个字节(其实就相应于用了iso-8859-1编码方式转了,实质应该是直接转为二进制流的),所以到到controller层后,需用iso-8859-1转为一个个字节,后再用页面所用的编码格式来解析这些字节数据,再转为string(string在java是unicode编码的),便达到将浏览器转来的信息还原为正确的信息。

分享到:
评论

相关推荐

    String(含Hex)与Byte数组互相转换[代码]

    使用`new String(byte[], charset)`构造函数,传入字节数组和相应的字符编码。例如: ```java byte[] bytes = {72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33}; String str = new String(bytes, ...

    C#byte[]与汉字、16进制字符的转换[文].pdf

    在C#中,我们可以使用Encoding类、Convert类和String.Format方法将字符串、Byte数组、十六进制字符串和汉字字符串之间进行转换。但是,在处理汉字和十六进制字符时,我们需要特别注意编码问题。

    Base64与byte[]相互转换

    String base64 = Base64.getEncoder().encodeToString("测试字符串".getBytes("UTF-8")); System.out.println(base64); ``` 2. **将Base64转换为byte[]** - 使用`BASE64Decoder`实例进行解码: ```java BASE...

    android GBK转换为String

    byte[] gbkBytes = unicodeStr.getBytes("GBK"); ``` 3. **GBK文件读写**: - 读取GBK编码的文件,需要设置正确的编码: ```java File file = new File("path_to_gbk_file"); FileInputStream fis = new ...

    byte与各类型之间的转化

    - 反之,可以使用`new String(byte[], Charset)`构造函数将字节数组转换为字符串。 ```java public static String byteToString(byte[] bytes) { return new String(bytes, StandardCharsets.UTF_8); } ``` #...

    byte[]转化成其他数据类型

    字符串的转换相对简单,可以直接使用`String.getBytes()`方法获取字符串对应的`byte[]`。 ```java public static byte[] stringToBytes(String s, int length) { while (s.getBytes().length ) { s += ""; // 填充...

    Java设置String字符串编码方法详解

    本文将深入探讨Java中设置String字符串编码的方法,帮助开发者更好地理解和使用这些功能。 首先,我们需要理解什么是字符编码。字符编码是将字符(如字母、数字和符号)与数字或二进制值关联的系统,例如ASCII、...

    string类的常用方法.zip

    - `getBytes(Charset charset) / new String(byte[] bytes, Charset charset)`: 指定字符集进行转换。 8. **迭代与遍历**: - `iterator()`: 获取一个迭代器,可以逐个访问字符串中的字符。 以上是`String`类的...

    C#16进制与字符串字节数组之间的转换代码

    byte[] bytes = chs.GetBytes(s); string str = ""; for (int i = 0; i < bytes.Length; i++) { str += string.Format("{0:X}", bytes[i]); // 转换为十六进制 if (fenge && (i != bytes.Length - 1)) { str...

    android字符串和16进制转换

    除了自定义方法外,Android也提供了`java.util.Formatter`和`java.nio.charset.StandardCharsets`等类来进行转换。例如: ```java public String stringToHex(String input) { return String.format("%0" + (input...

    Java基本类型与byte数组之间相互转换方法

    1. `getBytes(short data)` 和 `getShort(byte[] bytes)` - 这两个方法处理short类型。`getBytes(short data)` 将short值拆分成两个字节,并放入新创建的byte数组中。`getShort(byte[] bytes)` 取反操作,将两个...

    字符串转16进制字节

    在Java中,可以使用`String.getBytes()`和`new String(byte[], charset)`;在JavaScript中,可以使用`Buffer`对象的`toString('hex')`和`from`方法;在C++中,可以利用`std::stringstream`和`std::hex`配合进行转换...

    Java中字符串与byte数组之间的相互转换

    这是最直接的方法,例如`byte[] bytes = string.getBytes("charset")`,其中`charset`可以是任何支持的字符集,如"UTF-8"。如果不指定字符集,Java会使用平台默认的字符集。 2. **方法二**:手动转换。通过遍历字符...

    java汉字转拼音,android汉字转拼音,汉字转拼音首字母,汉字转ASCII

    byte[] utf8Bytes = hanzi.getBytes("UTF-8"); StringBuilder asciiStringBuilder = new StringBuilder(); for (byte b : utf8Bytes) { if (b >= 0 && b ) { asciiStringBuilder.append((char) b); } else { ...

    中文转化为unicode格式的方法类

    4. **`public String fromUnicodeBytes(byte[] bytes, Charset charset)`**:此方法将按照指定的字符集(如 UTF-8)解码字节数组,返回原始中文字符串。 在实际应用中,`unicodeConvert.java` 类可能会包含异常处理...

    常用中文编码显示及转换

    byte[] gbkBytes = chineseText.getBytes("GBK"); String utf8Text = new String(gbkBytes, "UTF-8"); ``` 从提供的压缩包文件列表来看,有`.bat`、`.class`和`.java`文件,这可能是一个简单的Java命令行程序,用于...

    java 字符集的解码方法

    4. `String`类的`getBytes()`和`new String(byte[], charset)`方法处理编码和解码。 5. 文件读写时,可以使用`FileReader`、`FileWriter`,或者指定字符集的`InputStreamReader`和`OutputStreamWriter`。 6. 在网络...

    Java中常用的关于编码解码方法

    本文将详细介绍Java中与编码解码相关的几个关键概念和方法,帮助开发者更好地理解并解决编码问题。 #### 1. 字符串的编码与解码 在Java中,字符串的编码和解码主要通过`getBytes()`和`new String()`方法来实现。 ...

    GBK转UTF_8

    byte[] gbkBytes = gbkStr.getBytes("GBK"); Charset gbkCharset = Charset.forName("GBK"); Charset utf8Charset = Charset.forName("UTF-8"); // 解码GBK字节流 CharBuffer charBuffer = gbkCharset.decode...

Global site tag (gtag.js) - Google Analytics