汉字一个字占两个字符,255个字符不可能都是汉字的。
windows允许文件有255个字符长度,换成汉字可以允许写几个汉字呢?麻烦了~
255字节就是128个汉字
如果你说的“字符”就是指 Java 中的 char,那好,那它就是 16 位,2 字节。
如果你说的“字符”是指我们用眼睛看到的那些“抽象的字符”,那么,谈论它占几个字节是没有意义的。具体地讲,脱离具体的编码谈某个字符占几个字节是没有意义的。
就好比有一个抽象的整数“42”,你说它占几个字节?这得具体看你是用 byte,short,int,还是 long 来存它。用 byte 存就占一字节,用 short 存就占两字节,int 通常是四字节,long 通常八字节。当然,如果你用 byte,受限于它有限的位数,有些数它是存不了的,比如 256 就无法放在一个 byte 里了。
字符是同样的道理,如果你想谈“占几个字节”,就要先把编码说清楚。同一个字符在不同的编码下可能占不同的字节。
就以你举的“字”字为例,“字”在 GBK 编码下占 2 字节,在 UTF-16 编码下也占 2 字节,在 UTF-8 编码下占 3 字节,在 UTF-32 编码下占 4 字节。不同的字符在同一个编码下也可能占不同的字节。
“字”在 UTF-8 编码下占3字节,而“A”在 UTF-8 编码下占 1 字节。(因为 UTF-8 是变长编码),而 Java 中的 char 本质上是 UTF-16 编码。而 UTF-16 实际上也是一个变长编码(2 字节或 4字节)。
如果一个抽象的字符在 UTF-16 编码下占 4 字节,显然它是不能放到 char 中的。换言之, char 中只能放 UTF-16 编码下只占 2 字节的那些字符。而 getBytes 实际是做编码转换,你应该显式传入一个参数来指定编码,否则它会使用缺省编码来转换。
你说“ new String("字").getBytes().length 返回的是3 ”,这说明缺省编码是 UTF-8.如果你显式地传入一个参数,比如这样“ new String("字").getBytes("GBK").length ”,那么返回就是 2。你可以在启动 JVM 时设置一个缺省编码,假设你的类叫 Main,那么在命令行中用 java 执行这个类时可以通过 file.encoding 参数设置一个缺省编码。比如这样:java -Dfile.encoding=GBK Main这时,你再执行不带参数的 getBytes() 方法时,new String("字").getBytes().length 返回的就是 2 了,因为现在缺省编码变成 GBK 了。当然,如果这时你显式地指定编码,new String("字").getBytes("UTF-8").length 返回的则依旧是 3.
否则,会使用所在操作系统环境下的缺省编码。
通常,Windows 系统下是 GBK,Linux 和 Mac 是 UTF-8.但有一点要注意,在 Windows 下使用 IDE 来运行时,比如 Eclipse,如果你的工程的缺省编码是 UTF-8,在 IDE 中运行你的程序时,会加上上述的 -Dfile.encoding=UTF-8 参数,这时,即便你在 Windows 下,缺省编码也是 UTF-8,而不是 GBK。
由于受启动参数及所在操作系统环境的影响,不带参数的 getBytes 方法通常是不建议使用的,最好是显式地指定参数以此获得稳定的预期行为。
#18284509196#
在windows命名规则中1个汉子相当于几个字符 - ******
#佴养# 1个汉字字符会占用两个英文字符的位置,存储需要2个字节
#18284509196#
varchar(255)的字段最多可以存储多长的字符串? - ******
#佴养# 255个字符(汉字为两个字符) 即只能存255/2=127个汉字.
#18284509196#
Access中文本类型字段大小为255能存多少个汉字,或者说要存1000+的汉字,用什么字符类型 - ******
#佴养# 用 备注 型字段
#18284509196#
一个汉字等于几个字符不少于5000字符就是最少多少字啊? - ******
#佴养#[答案] 如果是c语言则是2个
#18284509196#
3500字符等于多少汉字 - ******
#佴养#[答案] 字符与汉字之间没有直接对应关系,可以说一个汉字是一个字符,但反过来不一定,因为还有标点或者某些半角的英文字母、数字等.
#18284509196#
20000字符等于多少个汉字 - ******
#佴养# 每个汉字占2个字节 每个字符占一个字节 所以20000字符与10000个汉字所占空间大小一样
#18284509196#
文件或文件夹名称最多可以有255个字符或127个汉字 - ******
#佴养# 字节是8比特大小,1比特就是一个2进制数字,可表示0或1.字符有单字节编码字符和多字节编码字符.对于单字节编码字符,大小为1个字节,如ASCII码字符.对于多字节编码字符,又可分为等长字节编码字符和非等长字节编码字符,如对于用unicode编码的字符,所有字符都是2个字节大小.而在有些非等长字节编码中,有些字符大小是1字节,有些是2字节,有些是3字节,它们的字节大小是不同的.文件或文件夹名称不得超过255个字节,对于单字节字符就是不得超过255个字符;对于汉字一般是用双字节编码的,所以不得超过127个汉字.
#18284509196#
0 - 255 用这个类型可以存几个汉字? - ******
#佴养# 汉字的话,一个都不能存,汉字至少要两个字节,如果用编号的方式,也就是256个三
#18284509196#
一个字符占几个字节 - ******
#佴养# 两个、三个或者四个字节. 1、ASCII码中:一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间.一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制.最小值0,最大值255...
#18284509196#
wps上的字数统计出来说汉子500个字符500个是1000个字吗 - ******
#佴养# 字数500,表示有五百个字,字符500表示250个汉字,一个汉字相当于两个字符,一个字母是一个字符,500个字符等于250个汉字,就是说共是750字 一个数字或英文或一个...