小弟自习java web方面东西,在Myeclipse中将编码都设置为UTF-8,在HTML,JSP页面中 中文显示以及提交都没出现过问题。最近在学习hibernate相关知识中,通过hibernate框架向Mysql中插入数据时 (没用到tomcat),数据库出现乱码,起初以为是数据库问题(我的Mysql数据库编码都是UTF-8,和Myeclipse中一样),后来在程序中 添加了一条输出语句发现,myeclipse在接收中文参数时出现问题:用Scanner类next()方法接收了一个String name;"你好" 输出为--->"浣犲ソ"
import java.util.Scanner;public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String name=sc.next();
System.out.println("name为:"+name);
}}
后来将Test.java文件编码改为GBK 代码中name后的“为”字又变为乱码,不过此时中文接收反而正常了,输入为“你好”输出也为“你好”,难道以后像这种 与Web无关的纯Java文件 中文参数的处理只能改编码为GBK吗?有没有 好的处理方法,求指教

解决方案 »

  1.   

    我在CMD控制台 运行上述代码是正常的,估计还是编码问题(UTF-8,GBK),求指教
      

  2.   

    1、首先,在先建文件的时候要先确定你的文件是否是utf-8编码,确定之后再开始编码,当你在写完代码之后再看是不是utf-8编码的时候,如果发现不是此编码,在你转的时候以前非utf-8编码会转为乱码,例如中文。
    2、不知道你的参数是form提交的还是url传递的。form提交的只要将jsp/html编码转为utf-8,应该是没有问题的,如果是url传递的话,由于url在地址栏的时候在传递的过程中会自动转为iso-885(多少来着忘了)编码,所以在传递之前有encode一下,这样就不会再传递过程中自动转码,java中用java.net.URLEncode.encode()方法,js中用encodeURI方法
      

  3.   

    上面实例没有牵连到jsp,html方面,是一个简单的将输入中文字符 显示在屏幕上,可是出现乱码,难道将文件设置为UTF-8,Myeclipse设置为UTF-8不对吗,乱码出现的原因呢?
      

  4.   

    数据库出现乱码,和控制台出现乱码完全是两码事!!
    用的Mysql数据库吧,连接的时候url后面要加一条设置utf-8的语句。
    编写Connection URL时,加上?useUnicode=true&characterEncoding=utf-8java控制台输出本来就是gbk格式的编码。
      

  5.   

    如果你是在windows下,mysql的编码最好设置为gb2312 你试试!