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

forhelp 2002-02-01 10:44:39
...全文
257 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
编码简而言之就是汉字的索引

23,408

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧