同一编码方式的URLEncode.encode()方法与getBytes()方法返回的十六进制不同?
a.getBytes('utf-8')返回的是以utf-8编码的字节数组,也就是英文字母数字符号一个字节,汉字三个字节,所以说“你好”也就转换为六个字节,在这里也就表示为六个数字。而URLEncoder.encode(a, 'utf-8')返回的是使用utf-8编码的application/x-www-form-urlencoded 格式的字符串,具体的转换规则可以查javadoc,总体来说一个中文字符转换为三个%xy,xy为一个字节的utf-8编码。
这里的-28也就是E4的10进制表示,后面的10进制数字也与16进制数一一对应。
赞0
踩0