如何去改变String的编码格式


昨天面试的时候遇到了一个怎么改变String的编码格式,然后第一个想到的是setCharacterEncoding,然后跪了,然后今天研究了下,String 有个这样的的构造方法String (btye [],String)然后从网上找到了这样一篇连接http://blog.csdn.net/qmw19910301/article/details/49358947 ,然后发现,居然最后的人字没有从gbk转换成utf-8格式的,研究了下, 发现可能跟utf-8一个汉字3个字符,gbk一个汉字2个字节有关,英文和数字都占一个字符,发现如果你的汉字数量是偶数的话,英文和数字的数量随意不响应,就不会出现乱码的问题,这个不知道如何去解决,看到网上有一种似乎是改源码的方式, 

不过尽管这样,如果面试中你遇到了让你把字符串的编码格式从gbk转换成utf-8中,你写了

String s1= "你好啊的"; 
		 String gbk = new String(s1.getBytes("UTF-8"), "gbk"); 
		 System.out.println(gbk);//浣犲ソ鍟婄殑
		 String utf8 = new String(gbk.getBytes("gbk"), "utf-8");
		 System.out.println(utf8);//你好啊的

就能得满分。不过变量gbk后面的getBtyes()括号里面可以不用写内容,他这样会以你电脑上默认的编码格式去编辑。

萌新的简介,不一定完全正确,还有问题希望大神也来补充。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值