java new String(byte[],UTF-8)编码问题

我做读取文件内容的例子,用byte[]接收,然后用newString(byte[],UTF-8)来进行转换,但是读出来的中文就是乱码,而我把utf-8变成gbk,就是正常... 我做读取文件内容的例子,用byte[]接收,然后用new String(byte[],UTF-8)来进行转换,但是读出来的中文就是乱码,而我把utf-8变成gbk,就是正常的,这个问题怎么解决???? 展开
 我来答
fuhaiwei
2014-06-29 · TA获得超过3409个赞
知道大有可为答主
回答量:974
采纳率:75%
帮助的人:1386万
展开全部
Windows的记事本编码用的是系统内码。
而简体Windows默认编码就是GBK,所以你肯定要用GBK来解码啊。

要不然你就不要自己用byte[]来读取,而是用BufferedReader来readLine()就好了。

或者你可以试着获取系统默认编码。
乐正雁卉d1c01
2014-06-29 · TA获得超过103个赞
知道答主
回答量:80
采纳率:0%
帮助的人:50.5万
展开全部
写的时候要和读取的时候用同样的编码规则,否则会出现乱码
更多追问追答
追问
哎,我就是新建个文本文档,里面写了几个字,里面有英文也有中文,中文就只有两个字(测试),哪来的什么写的时候编码和读取要一致,一提问,就这么多没用的回答,我也知道编码要一致,关键是现在本来就是一致的,如果不一致,哪里出问题了,我想知道如何解决,如果还是这么模棱两可的回答,就别回答了
追答
你在发问题之前有没有将你的文件是用什么编码说出来,用的什么编码规则只有你自己知道,我只能说在你写的时候和读的时候编码要一致。所以在提问的时候把问题描述清楚,不要说的只有自己明白!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
完美之时空
2014-06-29 · TA获得超过133个赞
知道小有建树答主
回答量:204
采纳率:0%
帮助的人:82.6万
展开全部
windows 系统默认的编码是gbk,所以你读的时候也是用gdk;
如果你想用utf-8来读取,就先用utf-8格式来写一个文本,再用utf-8 去读取
追问
怎么建立一个utf-8编码的文本?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
桃字头小k
2014-06-29 · 超过17用户采纳过TA的回答
知道答主
回答量:83
采纳率:0%
帮助的人:49.6万
展开全部
试试String.getByte("UTF-8");还是有就是一楼说的
追问
我是读取一个文件的内容,文件内容就是test测试然后用byte[]接收,再用new String(byte[],"UTF-8") 这个方法,转成String, 测试这两个字就是乱码。我把编码变成gbk,就是正常的你这个是把一个String 转成utf-8编码的byte[],我转换过来的String已经是乱码了你说的不对
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式