java 字节流读取汉字 和 字母的问题

用FileInputStream读取文件时,是一个一个字节读取的,如果说因为汉字是两个字节,读取时会显示为?,那字母应该也是两个字节吧,都是unicode编码,为什么字母... 用FileInputStream读取文件时,是一个一个字节读取的,如果说因为汉字是两个字节,读取时会显示为?,那字母应该也是两个字节吧,都是unicode编码,为什么字母就可以正常显示 展开
 我来答
pensiero
2010-09-02 · TA获得超过1.1万个赞
知道大有可为答主
回答量:6921
采纳率:83%
帮助的人:1280万
展开全部
java乱码问题是比较多见。
整个环节中只要有一项有问题,就会产生乱码。

1、读取的文件采用的编码。
2、jvm所使用的编码。这个要看你所使用的OS和版本,jvm会使用OS中设定的默认编码。比如你使用英文版的winxp,jvm在处理流的时候就会默认采用cp什么什么的编码。
3、如果你使用了中间件,比如tomcat这样的web server,在request和response中,tomcat会自动使用ISO-8859-1编码。
4、如果有数据库数据交换,数据库中使用的编码。

你确认所有的环节用得都是同一种编码,就可以解决乱码问题了。
如果不是相同编码,那就做转码处理。
转码例句:
String s2 = new String(s1.getBytes("UTF-8"), "ISO8859_1");
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式