TextField显示网络传来的中文信息为什么都是些问号(“????”) ? 加入下面这两句看看:Font font=new Font("宋体",Font.PLAIN,15);UIManager.put("TextField.font",font); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这两句是对字符进行编码加在你的TextField里边 能具体点吗?比如说我有下面的部分代码;一方发发送:TextField textField =new TextField();out.print(textField.getText());out.flush();另一方接受:TextField textField1 =new TextField();String str=in.readline();textField1.setText(str);上面要怎么改? 汉字显示的是???还要进行编码转换: new String( Str.getBytes( "gb2312" ), "ISO8859-1" )主要是java用ISO8859_1的编码。而简体中文的编码是gb2312。所以要转换一下 seven1996(小七),能说清楚点,我真的急啊。 我倒,已经说得够清楚啦,加在需要显示文字的地方,如下:Font font=new Font("宋体",Font.PLAIN,15);UIManager.put("TextField.font",font);//另一方接受:TextField textField1 =new TextField();String str=in.readline();textField1.setText(str); Font font=new Font("宋体",Font.PLAIN,15);UIManager.put("TextField.font",font);-------------------有的中文可能默认的字体不支持,这两句是设置TextField的显示风格,设置以后,所有的TextField显示字体都改为规定的宋体了。 beyond_xiruo(又再次无奈的离开),我试过你的,还是不行。 对了,你那个in.readLine();的in是什么对象的实例? 不好意思,昨天没总挂着看//另一方接受:String Str=in.readline();Str=new String( Str.getBytes( "gb2312" ), "ISO8859-1" )textField1.setText(Str);试试 也可以把out.print(textField.getText());改成String str=textField.getText();str=new String( str.getBytes( "gb2312" ), "ISO8859-1" );out.print(str);试试,我感觉还是上面的解决更可靠 beyond_xiruo(又再次无奈的离开),输入输出流定义如下: DataInputStream in=new DataInputStream(new BufferedInputStream (socket.getInputStream())); PrintStream out=new PrintStream(new BufferedOutputStream (socket.getOutputStream()));seven1996(小七) :你说的我也试过,问题还是存在,我估计输入数出流的类型问题,因为我把out和in换为InputStream 型和 OutputStream 型,并且将要发送的字符串以byte发送,就不会出现中文乱码的情况,但是这样就有一个问题,就是InputStream类没有readLine接口,要自己实现一个,虽然实现了但总觉得不爽,希望还是在前面的类型基础上解决这个问题; List如何进行元素相加 JDIC 运行问题 哪位大哥知道韩顺平的循序渐进学java使用的是什么教材? 大家来说说JAVA的嵌套类 我新学Java,高手看下为什么出错啊 java 和数据库打包 请教:关于泛型的反射 如何方法调用 java2D如何开发在线游戏 关于包和路径问题!! 取随机数的算法,请教. 请教ArrayList和Vertor在使用上的区别!
一方发发送:
TextField textField =new TextField();
out.print(textField.getText());
out.flush();
另一方接受:
TextField textField1 =new TextField();
String str=in.readline();
textField1.setText(str);
上面要怎么改?
还要进行编码转换:
new String( Str.getBytes( "gb2312" ), "ISO8859-1" )
主要是java用ISO8859_1的编码。而简体中文的编码是gb2312。所以要转换一下
需要显示文字的地方,如下:
Font font=new Font("宋体",Font.PLAIN,15);
UIManager.put("TextField.font",font);
//另一方接受:
TextField textField1 =new TextField();
String str=in.readline();
textField1.setText(str);
UIManager.put("TextField.font",font);-------------------
有的中文可能默认的字体不支持,
这两句是设置TextField的显示风格,
设置以后,所有的TextField显示字体都改为规定的宋体了。
//另一方接受:
String Str=in.readline();
Str=new String( Str.getBytes( "gb2312" ), "ISO8859-1" )
textField1.setText(Str);
试试
改成String str=textField.getText();
str=new String( str.getBytes( "gb2312" ), "ISO8859-1" );
out.print(str);
试试,我感觉还是上面的解决更可靠
DataInputStream in=new DataInputStream(new BufferedInputStream
(socket.getInputStream()));
PrintStream out=new PrintStream(new BufferedOutputStream
(socket.getOutputStream()));seven1996(小七) :你说的我也试过,问题还是存在,我估计输入数出流的类型问题,因为我把out和in换为InputStream 型和 OutputStream 型,并且将要发送的字符串以byte发送,就不会出现中文乱码的情况,但是这样就有一个问题,就是InputStream类没有readLine接口,要自己实现一个,虽然实现了但总觉得不爽,希望还是在前面的类型基础上解决这个问题;