请问:在java中编码的具体含义?字符集与编码有何关系?在new String(byte[] b,encoding)中,为什么要指定encoding参数?

forhelp 2002-02-01 10:44:39
...全文
221 点赞 收藏 14
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
forhelp 2002-02-01
编码的具体含义是什么呢
回复
pengji 2002-02-01
encoding参数具体指出了,用什么编码方式将byte[] b生成新的STRING,如果不填的话按系统默认的方式编码!因为JAVA中的字符流是一种两进制流,所以new String()方法中要求你提供ENCODING参数!
回复
flytsu 2002-02-01
String s2 = new String(s1.getBytes(“ISO-8859-1”),”GBK”);

getBytes 方法用于将中文字符以“ISO-8859-1”编码方式转化成字节数组,而“GBK” 是目标编码方式。我们从以ISO-8859-1方式编码的数据库中读出中文字符串 s1 ,经过上述转换过程,在支持 GBK 字符集的操作系统和应用软件中就能够正确显示中文字符串 s2 。

回复
z_yheart 2002-02-01
如果不指定encoding参数,字符串打印(写入文件)的时候,按照系统默认的字符集编码,如果指定了encoding参数,就按指定的显示。我认为encoding参数是把byte[]转成String时的一种转变规则,如果规则不同,自然不能显示正确的String
回复
Netix 2002-02-01
unicode,gbk等。
回复
skyyoung 2002-02-01
public static String toHexString(int i) {
return toUnsignedString(i, 4);
}
private static String toUnsignedString(int i, int shift) {
char[] buf = new char[32];
int charPos = 32;
int radix = 1 << shift;
int mask = radix - 1;
do {
buf[--charPos] = digits[i & mask];
i >>>= shift;
} while (i != 0);

return new String(buf, charPos, (32 - charPos));
}
回复
tiger_lei 2002-02-01
skyyoung(路人甲);
你的 dunpHEXStr(byte b)
跟用 Integer.toHexString((int)b) 没什么区别吧
回复
forhelp 2002-02-01
我的理解对吗?
回复
skyyoung 2002-02-01
public static String dumpHEXStr (byte b)
{
return (""+"0123456789ABCDEF".charAt(0xf&b>>4)+"0123456789ABCDEF".charAt(b&0xf));
}
回复
skyyoung 2002-02-01
看看就知道。
public static String dumpHEX(String rStr)
{
return dumpHEX(rStr,null);
}
public static String dumpHEX(String rStr,String rEncoding)
{
byte[] buf = null;
try
{
if(rEncoding!=null)
buf = rStr.getBytes(rEncoding);
else
buf = rStr.getBytes();
}catch(Exception e)
{e.printStackTrace();}

StringBuffer sb = new StringBuffer();
for(int i=0;i<buf.length;i++)
{
sb.append(dumpHEXStr(buf[i])+" ");
}
System.out.println(sb.toString());
return sb.toString();
}
回复
thankyou 2002-02-01
那么各位大侠编码含义应如下解释,对吗?
在new String(byte[] b,encoding)中encoding是指定字节数组b中使用的编码方式,java通过此编码方式将字节流转换成unicode。例如当encoding为"gb2312"时,java就知道字节流编码方式为“gb2312”,则利用“gb2312”编码与unicode编码对应表将字节流转换为unicode。
回复
pengji 2002-02-01
编码的具体含义就是文字在计算机中的表示(编排)方式!
回复
unlun 2002-02-01
模拟现实~!达到某种特定的功能~!
回复
mengyou 2002-02-01
编码简而言之就是汉字的索引
回复
相关推荐
发帖
非技术区
创建于2007-09-28

2.3w+

社区成员

Java 非技术区
申请成为版主
帖子事件
创建了帖子
2002-02-01 10:44
社区公告
暂无公告