javanewstring编码_JavaString类型编码转换
String newStr = new Bytes(), "UTF-8");
java中的
String类是按照unicode进⾏编码的,当使⽤String(byte[] bytes, String
encoding)构造字符串时,encoding所指的是bytes中的数据是按照那种⽅式编码的,⽽不是最后产⽣的String是什么编码⽅式,换句话说,是让系统把bytes中的数据由encoding编码⽅式转换成unicode编码。如果不指明,bytes的编码⽅式将由jdk根据操作系统决定。
数组转换成字符串当我们从⽂件中读数据时,最好使⽤InputStream⽅式,然后采⽤String(byte[]
bytes, String
encoding)指明⽂件的编码⽅式。不要使⽤Reader⽅式,因为Reader⽅式会⾃动根据jdk指明的编码⽅式把⽂件内容转换成unicode 编码。
当我们从数据库中读⽂本数据时,采⽤Bytes()⽅法取得字节数组,同样采⽤带编码⽅式的字符串构造⽅法即可。ResultSet rs;
bytep[] bytes = rs.getBytes();
String str = new String(bytes, "gb2312");
不要采取下⾯的步骤。
ResultSet rs;
String str = rs.getString();
str = new Bytes("iso8859-1"), "gb2312");
这种编码转换⽅式效率底。之所以这么做的原因是,ResultSet在getString()⽅法执⾏时,默认数据库⾥的数据编码⽅式为
iso8859-1。系统会把数据依照iso8859-1的编码⽅式转换成unicode。使⽤Bytes("iso8859-1")把数
据还原,然后利⽤new String(bytes, "gb2312")把数据从gb2312转换成unicode,中间多了好多步骤。
从HttpRequest中读参数时,利⽤reqeust.setCharacterEncoding()⽅法设置编码⽅式,读出的内容就
是正确的了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论