当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 4 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : JAVA編譯和運行出現中文不能識別問題。。大家幫忙看看[已解决,谢谢大家]
帖子发表于 : 2007-12-12 6:32 

注册: 2007-03-16 23:36
帖子: 61
地址: 廣州
送出感谢: 0 次
接收感谢: 0 次
我的JAVA環境是用APT-GET自動安裝的。。。7.10ubuntu版本

編譯時,如果有中文注釋或中文,就不能識別顯示亂嗎。。。

以前用7.04也是這樣裝,沒出現任何問題。。。這次就=。=

本人估計是編碼那裏設置有問題,但本人是新手。。不知道設置什麽,向大家求助。

例如:
ser.java:10: 警告:编码 UTF8 的不可映射字符
socket=new DatagramSocket(port); //�뱾�ص�һ��̶��˿ڰ�
^
ser.java:10: 警告:编码 UTF8 的不可映射字符
socket=new DatagramSocket(port); //�뱾�ص�һ��̶��˿ڰ�
^
ser.java:10: 警告:编码 UTF8 的不可映射字符
socket=new DatagramSocket(port); //�뱾�ص�һ��̶��˿ڰ�
^
ser.java:10: 警告:编码 UTF8 的不可映射字符
socket=new DatagramSocket(port); //�뱾�ص�һ��̶��˿ڰ�
^
ser.java:11: 警告:编码 UTF8 的不可映射字符
System.out.println("��������");
^
ser.java:11: 警告:编码 UTF8 的不可映射字符
System.out.println("��������");
^
ser.java:11: 警告:编码 UTF8 的不可映射字符
System.out.println("��������");
^
ser.java:11: 警告:编码 UTF8 的不可映射字符
System.out.println("��������");
^



environment文件如下:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
CLASSPATH=.:/usr/lib/jvm/java-6-sun/lib
JAVA_HOME=/usr/lib/jvm/java-6-sun
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh:en_US:en"


原程序如下:
import java.io.*;

import java.net.*;

public class ser{

private int port=8000;

private DatagramSocket socket;

private String remoteHost="192.168.233.79";

private int remotePort=8000;



public ser() throws IOException {

socket=new DatagramSocket(port); //与本地的一个固定端口绑定

System.out.println("服务器启动");

}



public String echo(String msg) {

return "echo:" + msg;

}



public void service() {

while (true) {

try {







InetAddress remoteIP=InetAddress.getByName(remoteHost);



BufferedReader localReader=new BufferedReader(new InputStreamReader(System.in));

String msgs=null;



while((msgs=localReader.readLine())!=null){



DatagramPacket packet=new DatagramPacket(new byte[512],512);

socket.receive(packet); //接收来自任意一个EchoClient的数据报

String msg=new String(packet.getData(),0,packet.getLength());

System.out.println(packet.getAddress() + ":" +packet.getPort()

+">"+msg);



packet.setData(echo(msg).getBytes());

socket.send(packet); //给EchoClient回复一个数据报



byte[] outputData=msgs.getBytes();

DatagramPacket outputPacket=new DatagramPacket(outputData,

outputData.length,remoteIP,remotePort);

socket.send(outputPacket); //给EchoServer发送数据报



DatagramPacket inputPacket=new DatagramPacket(new byte[512],512);

socket.receive(inputPacket);

System.out.println(new String(inputPacket.getData(),0,inputPacket.getLength()));

if(msgs.equals("bye"))

break;





}





}





catch (IOException e) {

e.printStackTrace();

}

}

}





public static void main(String args[])throws IOException {

new ser().service();

}

}


最后由 rooney 编辑于 2007-12-13 10:32,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-12-12 8:37 
论坛管理员

注册: 2005-03-27 0:06
帖子: 10116
系统: Ubuntu 12.04
送出感谢: 7
接收感谢: 128
http://wiki.ubuntu.org.cn/index.php?title=UbuntuSkills

打开这个查看中间的将GBK编码转为UTF8编码的方法,将你的代码转为UTF8编码。


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-12-12 8:40 
头像

注册: 2006-10-25 18:10
帖子: 2677
地址: 长沙
送出感谢: 0 次
接收感谢: 0 次
你是拿哪个文本编辑器编辑的,要不就查询一下 javac 编译时如何指定文件编码,要不就将你的源代码编码转换为 UTF-8。


_________________
你是自由的。别人也是。


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-12-13 10:34 

注册: 2007-03-16 23:36
帖子: 61
地址: 廣州
送出感谢: 0 次
接收感谢: 0 次
yiding_he 写道:
你是拿哪个文本编辑器编辑的,要不就查询一下 javac 编译时如何指定文件编码,要不就将你的源代码编码转换为 UTF-8。

我汗...我汗...我狂汗....我忘了我是用WIN下的记事本编的...=.=........一场误会..... :roll:


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 4 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译