java eclipse输出有点问题,全是小方格

importjava.io.*;importjava.net.Socket;importjava.net.UnknownHostException;importjava.... import java.io.*;import java.net.Socket;import java.net.UnknownHostException;import java.util.Scanner;public class SocketText { public static void outputStream(String name) { File file=new File(name); FileOutputStream os=null; Scanner a=new Scanner(System.in); try{ os=new FileOutputStream(file); System.out.println("请输入用户名:"); byte[] b=a.nextLine().getBytes(); System.out.println("请输入密码:"); byte[] b2=a.nextLine().getBytes(); System.out.println("恭喜你注册成功!"); os.write(b); os.write(b2);
os.flush(); } catch(FileNotFoundException e) { e.printStackTrace(); } catch(IOException e) { e.printStackTrace(); } finally { try{ if(os!=null) { os.close(); } } catch(IOException e) { e.printStackTrace(); } } } public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("输入1为注册,输入2为登陆!请选择:"); Socket socket=null; try { socket=new Socket("127.0.0.1",12345); OutputStream os=socket.getOutputStream(); outputStream("F:\\abc.txt"); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ if(socket!=null){ try { socket.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }
输入是能输入的,但是输入完最好一项后就打印出这个东西出来,为什么呢?
展开
 我来答
jamxval
2013-07-17 · TA获得超过6821个赞
知道大有可为答主
回答量:4308
采纳率:82%
帮助的人:1387万
展开全部
方框是字体的问题,问号才是字符集的问题,你在 eclipse 参数页中 General > Appearance > Colors and Fonts 里面把 Console 相关的字体设成一个支持汉字的字体,比如楷体或 Arial MS Unicode.
千锋教育
2015-12-11 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部

小方格是输出了空字符和制表符等特殊符号,关闭方法如下:
1、打开Window->Preferences->General->Editors

2、选中Text Editors->去掉show whitespace characters前面的钩钩即可。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
李晓健
2013-07-16 · TA获得超过183个赞
知道小有建树答主
回答量:293
采纳率:0%
帮助的人:190万
展开全部

项目名   右键  properties   然后如图

追问
改了,还是有问题,文字也变了
追答
Eclipse 的控制台必须用GBK编码。所以条件1和条件4必须同时满足否则运行的还是乱码。才能保证不是乱码。

条件1,Window | Preferences | Workspace | Text fileencoding | GBK编码。
这样定义的是整个工作区间的编码。
这样就把整个工作空间的编码格式定死了,但是如果某一个工程用的是不同的编码格式的话这样单独再解决。如下:
条件2,工程上右键 | Properties | Resource | Text fileencoding | UTF-8编码。或者适合的编码格式。这样定义的是整个工程的编码。
这样就把整个工程的编码格式定死了,但是如果某一个文件用的是不同的编码格式的话这样单独再解决。如下:
条件3,在某个文件上右键| Properties | Resource | Text fileencoding | UTF-8编码。或者适合的编码格式。这样定义的是单独某个文件的编码。
这里要说的是文件的实际编码格式优先用的是:第3个,其次再用2,最后先用1。有时候是123,必须满足条件。无论怎样这几种编码格式试一试就全知道了。
条件4,还有运行时编码设置如下:菜单:Run Configuration | 右侧的选项卡Common 的 Console Encoding 选择GBK编码。这个是用来控制console控制台显示,必须是GBK,就不会乱码。尽管1,2,3条件都不是GBK,只要4是GBK。控制台就不会乱码。
这样保证了工作空间和工程代码编程方式和工程里的单独文件的编码格式的不冲突。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a913702626
2015-10-30
知道答主
回答量:51
采纳率:100%
帮助的人:14.7万
展开全部
输出是指的控制台吗 ?
我目前的能力就知道1中情况
1:编码格式不正确,例如什么utf-8什么之类的
完善我的问题: 我尼玛这么多人的回答了,就尼玛我回答的二笔 操
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小度小度你好吗76ef5
2013-07-16
知道答主
回答量:16
采纳率:0%
帮助的人:6.8万
展开全部
右键工程 - properties - resource - Text file encoding 修改为utf-8试试
追问
改了,还是有问题,文字也变了
追答
修改为utf-8 之后,System.out.println里的汉字变成乱码了么,你把这些乱码删掉重新输入一遍再打印出来看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式