java I/O流学习遇到的问题
**`
在进行java的开发过程时 学习I/O流的过程中,遇到的关于编码的问题;
如果要用网络流来获取网址的信息,如果自己的java开发环境所带的编码是utf-8那就没什么事,如果自己开发环境(比如:eclipse)所带的编码是GBK的话在抓取网址信息时中文会出现乱码情况,
可以打开Windows——>Preferences——>General——>Workspace 查看编码格式 我的是GBK。。
由于很多网址的编码格式都是UTF-8 极少是GBK(“网易云”)
所以在GBK到UTF-8 的转化我找了一些资料,最简单的就是在设置中将Text file encoding中的Default改为Other在里选择UTF-8然后点击Apply应用,只是这个方法适合那些刚刚安装eclipse的人,没有写太多项目 或者用的纯英文的人,因为这个方法转化过之前写的项目中有中文的全变成乱码然后我自己又找到一种一种方法就是
try(InputStreamReader is=new InputStreamReader(
new URL("https://www.cnblogs.com/chenhuan001/p/6575089.html").openStream(),"UTF-8");) {
//如果项目的字符集和源码的不统一 可以在后面添加来指定他的源码的字符集编码
int temp;
while((temp=is.read())!=-1) {
System.out.print((char)temp);//字节数不够出现乱码
}
} catch (IOException e) {
System.out.println("出现异常");
}
这个是在 抓取网络流时在.openStream(),后面加上个指定编码格式 或许很多初学者会忘记这一点。