中英文占的字节数 TextBox 中的maxSize是字节数还是字符个数

TextBox 的构造函数:

public TextBox(String title, String  defaultText, int maxSize,i nt constraints){}

title:屏幕上方的标题

defaultText:默认显示的内容

maxSize:书上讲的是字符数。经过这次我感觉应该是字节数才对。(不知道自己的理解是不是正确如有错误请指正)

constructions是约束:是一些符号常量 

 

今天做一个程序:输入框限制长度,设置为24 但是只能输入8个汉字  在模拟器上可以运行 但是到三星的一款手机上就会出项上述的情况。原来是中英文占的字节数不同。


下面是我在网上找到的一段代码:

 

 

运行结果:

 

GB2312 : 1

GBK : 1

GB18030 : 1

ISO-8859-1 : 1

UTF-8 : 1

UTF-16 : 4

UTF-16BE : 2

UTF-16LE : 2

-------------------------

GB2312 : 2

GBK : 2

GB18030 : 2

ISO-8859-1 : 1

UTF-8 : 3

UTF-16 : 4

UTF-16BE : 2

UTF-16LE : 2

 

这样解释就清楚了,三星的手机系统可能支持的是utf-16  一般的手机是支持ISO-8859-1的所以 输入的maxlegth没有问题。

遇到这样的机器就会有问题了。出来的结果不是自己想要的。

 

 

和同事商量后在

1.polish中加入了一个属性值。

2.在所有用到:中文输入&&需要控制长度  的情况  都是 length*chineseCharBytes这个参数就可以了

存储一个中文字符占的字节数 这样可以适应不同的手机了 遇见不符合的手机调节这个参数就行了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值