java编码问题

saygoodbyetoyou 2009-12-01 06:42:56
我是个java初学者
对于编码这部分不了解,我有几个问题,请大家帮我解答一下:
(1)java运行环境中的默认编码是操作系统中的默认编码吗?
(2)GBK是用几个字节表示一个汉字,Unicode又是用几个字节表示一个汉字和一个英文字母,是大多数教材
上很网上说的两个吗?用没有用三个或四个字节表示一个汉字的情况。
(3)String str=new String("字符编码");
byte[] bytes = str.getBytes();
System.out.println(bytes.length);
这个输出的bytes.length是什么数量?是字节数吗?
(4)Unicode中的4e10,4e70
U+ 0 1 2 3 4 5 6 7 8 9 A B C D E F ----------------------------------------------------- 4e00 一 丁 丂 七 丄 丅之类的是什么意思啊?
比如说我想把汉字转化成星星,月亮之类的符号怎么转换,最好帮我写几行主要的代码
谢谢了
...全文
115 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mengxin846 2009-12-02
  • 打赏
  • 举报
回复
问题都是比较经典,而且容易出错的问题
dengsf 2009-12-02
  • 打赏
  • 举报
回复
1、java明确规定,运行时 内存中是以Unicode表示字符的。
2、GBK用2个字节表示汉字,可查查 多字节编码(多字节字符等等)。
Unicode是一堆规范的统称,包含UCS2 UCS-4 UTF-8 等等,
一般所讲的Unicode是指UCS2,2个字节表示一个字符。
UCS4用4个字节表示一个字符,UTF-8则用1-3个字节。
3、不带参数的getBytes(),是将字符以系统当前所用的编码表示,
得到的是一堆字节。按系统当前的编码方式解释这堆字节会得到原来的字符(串)。
byte[].length当然是字节的个数了。
4、……
laker_914 2009-12-01
  • 打赏
  • 举报
回复
呵呵,lz还真是会问问题呢!
whut0802 2009-12-01
  • 打赏
  • 举报
回复
呵呵,有个结束java编码的文章,看的还蛮清楚,希望对LZ有用
http://hi.baidu.com/guoerguoerguoer/blog/item/79480208703d182d6b60fba5.html
sforiz 2009-12-01
  • 打赏
  • 举报
回复
LZ要求不低哟
1、否
2、GB和GBK一样,后者是前者的扩充吧,“是大多数教材上很网上说的两个”应该是这样吧,三个或四个字节表示一个汉字的情况,可能得用到UTF-16或更高的编码
3、byte[] bytes = str.getBytes(); 其中getBytes()是获取字符串的字节数组,所以bytes.length是获取数组长度,也就是字节数
4、❤、☆????
wzju64676266 2009-12-01
  • 打赏
  • 举报
回复
bytes.length 是给[] bytes 分配空间的大小

62,620

社区成员

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

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