人在旅途 发表于 2006/8/21 8:52:09 | 1.因为JAVA的CLASS中的文字列是用UTF-8保存的,所以只要源程序中的文字列的码是系统缺省编码,并在该系统中编译(当然你也可以自己指定正确的源程序编码),在DOS下编译的JAVA程序中所保存的文字列和在UNIX下编译的是一样的.如果你一定要把源程序移到UNIX上编译,请不要忘记把源程序转换成UNIX系统的缺省编码或在编译时指定正确的源程序编码.请注意UNIX的缺省编码不一定就是EUC,有可能是8859-1,这两种编码是不一样的,一个16位,一个8位的. 2.如果你用TELNET连接UNIX并启动你的程序,请注意你要把TELNET的编码设为该UNIX系统的缺省编码,如果不能的话,可改变你的源程序,指定System.in和System.out的编码为你的TELNET的编码,不然System.in和System.out将用系统的缺省编码进行输入和输出,也许你可看到你用TELNET进行的行命令输入和程序返回输入文字列的显示都是正确的,但那时假象,你输入的文字列被错位地接受和编码并转化为错位的UNICODE存在内存中,输出时又被错位的解码并显示,所以负负得正,显示才看上去正确.
|