社区
Java SE
帖子详情
int ic=new String("a").getBytes().length; 为什么得1,java不是unicode的吗,应该得2吧?
wd8_6532
2006-09-22 05:58:55
int ic=new String("a").getBytes().length; 为什么得1,java不是unicode的吗,应该得2吧?
...全文
231
12
打赏
收藏
int ic=new String("a").getBytes().length; 为什么得1,java不是unicode的吗,应该得2吧?
int ic=new String("a").getBytes().length; 为什么得1,java不是unicode的吗,应该得2吧?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wd8_6532
2006-09-23
打赏
举报
回复
唉,刚开始用Java做东西,难道又要开始研究一个新的语言的各个方法的细节?
ykzhujiang
2006-09-23
打赏
举报
回复
enjoy java way:)
wd8_6532
2006-09-23
打赏
举报
回复
getbyte是用你机器默认的编码方式对java内部的ucs-2字符串进行解码所得到的byte
所以这个得到的byte不是unicode编码的字节,而是你机器平台的默认编码方式对应的字节
比如GBK或者latin1
==========================
明白了,string.getbyte()是返回本机默认编码方式的字节。
string.getbyte("unicode")是返回unicode编码方式的字节。
我感觉,java这个地方做的不好,这个getbyte不应该有2个声明
一个就够了 getbyte(string charset=常量) 默认是本机就行了。
现在的方式搞得很胡涂。
guoyibin
2006-09-23
打赏
举报
回复
String 是一个特殊的类呀,是类怎么会没有方法呢?
奇怪...
ykzhujiang
2006-09-22
打赏
举报
回复
getbyte是用你机器默认的编码方式对java内部的ucs-2字符串进行解码所得到的byte
所以这个得到的byte不是unicode编码的字节,而是你机器平台的默认编码方式对应的字节
比如GBK或者latin1
wxiaof2005
2006-09-22
打赏
举报
回复
学习ing
J_fox
2006-09-22
打赏
举报
回复
学习
wd8_6532
2006-09-22
打赏
举报
回复
byte[] b=new String("a").getBytes();
int i=b.length;
i得值应该是几?
meadking
2006-09-22
打赏
举报
回复
数组里面length是属性!
难道String里面也是属性吗?
dbwang
2006-09-22
打赏
举报
回复
说的好 !完全正确!
yyjn12
2006-09-22
打赏
举报
回复
对了.说.length得到的有点不确切.
length是个属性,不是方法.
yyjn12
2006-09-22
打赏
举报
回复
.length得到的是字符串的长度啊."a"这个字符串不就一个字符吗?那长度就是1.
这与它占几个字节没有关系.长度就是指就是几个字符
String
.
length
() 与
String
.get
Byte
s().
length
String
.
length
() 返回字符串的字符个数,一个中文算一个字符;
String
.get
Byte
s().
length
返回字符串的字节长度,一个中文两个字节;
String
的get
Byte
s()方法是得到一个字串的字节数组,这是众所周知的。但特别要注意的是,本方法将返回该操作系统默认的编码格式的字节数组。如果你在使用这个方法时不考虑到这一点,你会发现在一个平台上运行良好的系统,放到
String
.get
Byte
s(
String
charset)中文转换乱码问题
在
Java
中,
String
.get
Byte
s(
String
decode)方法会根据指定的decode编码返回某字符串在该编码下的
byte
数组表示,如
byte
[] b_gbk = "中".get
Byte
s("GBK");
byte
[] b_utf8 = "中".get
Byte
s("UTF-8");
byte
[] b_iso88591 = "中".get
Byte
s("...
Java
中一个字符占两字节 但为什么
new
String
("字").get
Byte
s().
length
返回3个字节
首先,你所谓的“字符”具体指什么呢?如果你说的“字符”就是指
Java
中的 char,那好,那它就是 16 位,2 字节。如果你说的“字符”是指我们用眼睛看到的那些“抽象的字符”,那么...
Get
Byte
s的长度区别
C#的Get
Byte
s的长度区别
string
s = "欧 耶";
string
ss = "abc defg"; Encoding.Default :是指当前系统设置的“默认字符集编码方式 Encoding.ASCII :将
Un
ic
ode
字符编码为单个 7 位 ASCII 字符。
int
j = System.Text.Encoding.ASCII.Get
Byte
s(s).
Length
; //3
int
i= System.Text.Encoding.ASCII
System.Text.Encoding.Default
string
strTmp = "abcdefg某某某";
int
i= System.Text.Encoding.Default.Get
Byte
s(strTmp).
Length
;//获取与系统区域设置中的默认 ANSI 代码页相关联的编码,按照指定编码类型把字符串指定到指定的
Byte
数组 ,而字符串是占两个字符,所以会是13将一组字符编码为一个字节序列
int
j= strTmp.
Length
;以上...
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章