事出有因
在向HttpURLConnection的输出流写入内容时,因没有设置charset,导致接收方对数据的验签不一致。
URL url = newURL(requestUrl);//打开连接
HttpURLConnection urlConn =(HttpURLConnection)url.openConnection();
......
......//获取输出流
out = newOutputStreamWriter(urlConn.getOutputStream());//发送请求参数
out.write(concatKeyValue(params, false));
out.flush()
回过头来看,问题看似挺容易解决,只需在获取输出流时,指定字符编码集
out = new OutputStreamWriter(urlConn.getOutputStream(), "utf-8");
但实则费了一番工夫。期间心里产生了过以下的问题:
1、String.getBytes(String charset)与String(Byte[] bytes, String charset)的使用。
2、什么场合下会涉及的字符编码的转换呢?
3、在不显示指定charset时,java使用Charset.defaultCharset()来获取默认字符编码。Charset.defaultCharset()的值来自哪里?
为了在以后的开发中,快速解决字符集相关问题。在这里对字符集做了一次比较系统的学习。
字符集与字符编码
字符是各种文字与符号的总称,比如语言符号、图形符号、标点。
字符集是字
如果觉得《java语言使用的字符码集是_Java应用开发中的字符集与字符编码》对你有帮助,请点赞、收藏,并留下你的观点哦!