java 怎么 让 text 输出 不乱码 new String(text.getBytes("GB2312")) 10

java怎么让text输出不乱码System.out.println(newString(text.getBytes("GB2312")));这句代码不能变只能在上面转换... java 怎么 让 text 输出 不乱码

System.out.println(new String(text.getBytes("GB2312")));

这句代码不能变 只能在上面转换
展开
 我来答
luchuanbaker
2017-11-24 · TA获得超过2041个赞
知道大有可为答主
回答量:2604
采纳率:83%
帮助的人:1177万
展开全部
上面的代码相当于将text从GB2312的编码转换为默认编码。
new String(byte[]) 相当于:new String(byte[], defaultCharset),
而默认编码是通过:
System.getProperty("file.encoding")
获取到的。
这个参数要么通过启动java程序的时候通过vm参数提供(Eclipse通过配置默认编码可以自动带入,myeclipse的普通程序也可以,如果是老版本myeclipse的Tomcat即使配置了默认编码也不行,编码还是GBK(Windows操作系统)),如果是linux系统,可以通过配置LANG环境变量来定义编码。
而java的内部编码都是utf8的,如果要让上面的输出不乱码那么可以:
1、让控制台以GBK编码查看,Eclipse的程序的启动配置中可以修改
2、让text先从默认编码转换为GB2312,然后上面的代码再将其从GB2312转换为默认编码,此时刚好可以不乱码。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式