组织下,目前习得的:  

        对于java编译器。编译文件时,它需要得到文件的编码,如果未指定,则使用系统默认编码(对于linux就是locale所对应的)。Java编译的时候会转换成统一的unicode编码处理(字符串在java内存中总是按unicode编码存储的),最后保存的时候再转换为utf编码——以"中文"两个字为例,其Unicode编码为"4e2d 6587",UTF编码就是"e4b8ad e69687"。(该段中的子是引自网上的一篇博文。

        所以我在未指定编码的情况下,在linux下(LANG=zh_CN.utf8)编译gbk编码的java文件。程序插入mysql数据库的条目,无论怎么调整编码参数都无法正常显示。
         由于最终总是保存成utf8格式,所以插入数据也是utf8的。java的输出编码,是按照系统默认语系来的(即 windows gbk, linux 看 locale)。 哈,java本身就帮我们转换了,很好很强大。
 
   ps.为排除其他干扰,没有用ide。