小弟自习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吗?有没有 好的处理方法,求指教
2、不知道你的参数是form提交的还是url传递的。form提交的只要将jsp/html编码转为utf-8,应该是没有问题的,如果是url传递的话,由于url在地址栏的时候在传递的过程中会自动转为iso-885(多少来着忘了)编码,所以在传递之前有encode一下,这样就不会再传递过程中自动转码,java中用java.net.URLEncode.encode()方法,js中用encodeURI方法
用的Mysql数据库吧,连接的时候url后面要加一条设置utf-8的语句。
编写Connection URL时,加上?useUnicode=true&characterEncoding=utf-8java控制台输出本来就是gbk格式的编码。