系统中出现字符长度问题,请各位帮忙。问题:系统默认字符是UTF-8编码,写入文本后GB2312编码。
目标:取得UTF-8字符写到文本(GB2312)后字节长度。
例:字符“张三”在程序中占用6字节,到文本中占4字节String a=“张三”;
取值后
a.getBytes().length=6;
a.length=2请教什么方法可以取到正确的长度4?
new String(accountHolderName.getBytes("UTF-8"),"8859_1").getBytes().length
new String(accountHolderName.getBytes("UTF-8"),"gb2312").getBytes().length
之类的方法都不行
目标:取得UTF-8字符写到文本(GB2312)后字节长度。
例:字符“张三”在程序中占用6字节,到文本中占4字节String a=“张三”;
取值后
a.getBytes().length=6;
a.length=2请教什么方法可以取到正确的长度4?
new String(accountHolderName.getBytes("UTF-8"),"8859_1").getBytes().length
new String(accountHolderName.getBytes("UTF-8"),"gb2312").getBytes().length
之类的方法都不行
解决方案 »
- 用java分配一个确定大小的存储空间的疑惑
- 看看这个程序! 关于静态域的修改!
- 请教一个关于日期的问题
- 问一个简单问题。如何得到10到20之间的随机数
- 请问那位有Think in java这本书中的例子的原代码呀/还有课后习题的代码呀?
- java中怎样实现C中的/t功能,java中有“/t”吗?在线等!
- 关于JAVA文件读取写入的问题。
- 请问如何在applet中触发一个c语言程序(Linux7.2+JBuilde7+Mysql)
- 请问大虾在sco unix5.05下,数据库informix,WEB服务用tomcat3.0的JDBC驱动有否?
- 很怪的问题,估计大家都没遇到过
- java 拼写sql的问题
- JAVA类库中的类可以看到原码么?
{
String a = "张三";
//使用双字节编码对它进行解码
byte[] b = a.getBytes("gb2312");
//使用单字节编码对它进行编码
String s = new String(b, "iso8859-1");
//输出 4
System.out.println(s.length());
//使用iso8859-1的好处是它不会丢失信息,还可以将它还原
System.out.println(new String(s.getBytes("iso8859-1"), "gb2312"));
//输出 张三
}