`
hz_chenwenbiao
  • 浏览: 996209 次
  • 性别: 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编码的),便达到将浏览器转来的信息还原为正确的信息。

分享到:
评论

相关推荐

    C#_string_byte数组转换解析

    C# string byte数组间转换所涉及的方法是什么呢?让我们来看看具体的内容: C# string byte数组转换之string类型转成byte[]: byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str ); 反过来,byte[]转...

    C# char[]与string byte[]与string之间的转换详解

    1、char[]与string之间的转换 //string 转换成 Char[] string str=hello; char[] arr=str.ToCharArray();...bytes = Encoding.UTF8.GetBytes(str); //string 转换成 byte[] (字符串是用哪种编码生成的byte[]

    Java中的String类getBytes()方法详解与实例

    在本文中,我们学习了Java String类的getBytes()方法,它允许将字符串转换为字节数组,并且可以指定字符编码方式。通过实例和代码演示了使用平台默认字符编码和指定UTF-8、ISO-8859-1字符编码的情况。getBytes()方法...

    C# 字符串string和内存流MemoryStream及比特数组byte[]之间相互转换

    代码如下:(1)byte[] bt=System.Text.Encoding.Default.GetBytes(“字符串”); (2)byte[] bt=Convert.FromBase64String(“字符串”); 2.字符串转流 代码如下:(1)MemoryStream ms=new MemoryStream(System.Text....

    java md5 jar

    byte bytes[] = md5.digest(); for(int i = 0; i < bytes.length; i++) { String s = Integer.toHexString(bytes[i] & 0xff); if(s.length()==1){ buf.append("0"); } buf.append(s...

    StringAPI.java

    2.String和byte[]之间的转换 getBytes() Arrays工具类 : Arrays.toString(names) String类 String replace(char oldChar, char newChar) String replace(CharSequence target, CharSequence replacement) ...

    网站生成密码

    网上下载不知出处 public string MakePassword(string User, string strSite) { try { string strRet = ""; byte[] bStr = new UnicodeEncoding().GetBytes(User); byte[] bKey = new UnicodeEncoding()....

    字符串各种编码转换 Scanner 、String

    此例子是一个字符串转各种编码的demo,编码格式是已经定义好的,当然你也可以扩充,使用时只需要构造它的对象然后调用对应的转换格式的方法即可,很简单的!

    visual studio 2013 C# DES 加密解密 asp.net 完整 源码 下载

    byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8)); byte[] rgbIV = Keys; byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString); DESCryptoServiceProvider dCSP = new ...

    MyEclipse中文字过滤器

    byte[] bytes=input.getBytes("IS08859-1"); return new String(bytes,"GBK"); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); ...

    Java版SMS4和Base64加密算法

    本资源是集合了SMS4和自定义的Base64加密算法。SMS4加密算法中提供了如下接口: private static byte[] encode16(byte[] plain, ...public static String decodeSMS4toString(byte[] cipher, byte[] key); Base64...

    RSA加密解密(C#)实现

    public string RSAEncrypt(string xmlPublicKey, byte[] EncryptString) { try { byte[] CypherTextBArray; string Result; System.Security.Cryptography.RSACryptoServiceProvider rsa = new ...

    Des加密解密C#源码

    byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8)); byte[] rgbIV = Encoding.ASCII.GetBytes(kesVector); byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString); ...

    DES对称分组密码系统的Java实现

    public static String bytes2Hex(byte[] data) { if (data==null) { return null; } else { int len = data.length; String str = ""; for (int i=0; i; i++) { if ((data[i]&0xFF)) str = str + "0" + ...

    java初学者必读

    针对jsp和servlet: 解决办法: 第一: 在jsp页面加入: ; charset=gb2312" %> 或者在servlet里面 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, ...

    C#(.net)中按字节数截取字符串最后出现乱码问题的解决

    前言 最近需要用到按字节数截取字符串。在网上找了很多方法。... string msg= Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(strcode)); 例子:2 string strcode=我是小明; byte[] buffer=Encoding.UTF8.Ge

    史上最全的java基础总结大全

    byte[] buf1 = str1.getBytes();//默认解码:Unicode,四个字节 //编码解码2:指定编码 String str2 = "你好"; byte[] buf2 = str2.getBytes("UTF-8");//指定解码:UTF-8,六个字节 //编码解码3:编码正确...

    C#加密JAVA解密

    byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64); byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64); DESCryptoServiceProvider cryptoProvider = new ...

    asp.net 通用包

    byte[] inputData = Encoding.UTF8.GetBytes(encryptString); byte[] encryptedData = rijndaelEncrypt.TransformFinalBlock(inputData,0,inputData.Length); return Convert.ToBase64String(encryptedData); }...

    短信发送代码

    byte[] bytes = encoding.GetBytes(value); for (int i = 0; i < bytes.Length; i++) { result += BitConverter.ToString(bytes, i, 1); } return result; } public static string EncodeingAddLength...

Global site tag (gtag.js) - Google Analytics