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数组转换之string类型转成byte[]: byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str ); 反过来,byte[]转...
1、char[]与string之间的转换 //string 转换成 Char[] string str=hello; char[] arr=str.ToCharArray();...bytes = Encoding.UTF8.GetBytes(str); //string 转换成 byte[] (字符串是用哪种编码生成的byte[]
在本文中,我们学习了Java String类的getBytes()方法,它允许将字符串转换为字节数组,并且可以指定字符编码方式。通过实例和代码演示了使用平台默认字符编码和指定UTF-8、ISO-8859-1字符编码的情况。getBytes()方法...
代码如下:(1)byte[] bt=System.Text.Encoding.Default.GetBytes(“字符串”); (2)byte[] bt=Convert.FromBase64String(“字符串”); 2.字符串转流 代码如下:(1)MemoryStream ms=new MemoryStream(System.Text....
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...
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()....
此例子是一个字符串转各种编码的demo,编码格式是已经定义好的,当然你也可以扩充,使用时只需要构造它的对象然后调用对应的转换格式的方法即可,很简单的!
byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8)); byte[] rgbIV = Keys; byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString); DESCryptoServiceProvider dCSP = new ...
byte[] bytes=input.getBytes("IS08859-1"); return new String(bytes,"GBK"); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); ...
本资源是集合了SMS4和自定义的Base64加密算法。SMS4加密算法中提供了如下接口: private static byte[] encode16(byte[] plain, ...public static String decodeSMS4toString(byte[] cipher, byte[] key); Base64...
public string RSAEncrypt(string xmlPublicKey, byte[] EncryptString) { try { byte[] CypherTextBArray; string Result; System.Security.Cryptography.RSACryptoServiceProvider rsa = new ...
byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8)); byte[] rgbIV = Encoding.ASCII.GetBytes(kesVector); byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString); ...
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" + ...
针对jsp和servlet: 解决办法: 第一: 在jsp页面加入: ; charset=gb2312" %> 或者在servlet里面 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, ...
前言 最近需要用到按字节数截取字符串。在网上找了很多方法。... string msg= Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(strcode)); 例子:2 string strcode=我是小明; byte[] buffer=Encoding.UTF8.Ge
byte[] buf1 = str1.getBytes();//默认解码:Unicode,四个字节 //编码解码2:指定编码 String str2 = "你好"; byte[] buf2 = str2.getBytes("UTF-8");//指定解码:UTF-8,六个字节 //编码解码3:编码正确...
byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64); byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64); DESCryptoServiceProvider cryptoProvider = new ...
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...