主要是我有一些体会但是也有一些疑惑
首先我列出一些与编码与解码有关的设置<meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
设置html页面编码,与http头不同http头属性ContentType("text/html; charset=utf-8");
浏览器用http头所指定的编码向服务器发送数据,告诉页面是什么编码对于tomcat服务器,server.xml
<Connector port="8080" protocol="HTTP/1.1"
               maxThreads="150" connectionTimeout="20000"
               redirectPort="8443" URIEncoding="utf-8"/> 
URIEncoding告诉服务器servlet解码URL时采用的编码,也就是get提交的内容,不包括post提交的内容。request.setCharacterEncoding()告诉服务器用编码解析post提交的内容。HttpServletResponse.setContentType()设置http头的ContentType,  浏览器根据http头中的ContentType("text/html; charset=GBK"),指定的字符集来解码服务器发送过来的字节流。最后是数据库编码设置了。问题:
1,utf-8属于unicode字符集,也就是支持所有国家的语言,我如果一致设置为utf-8的话,会正确的显示中文而不出现乱码吗? 如果有些部分的编码不一致比如,http头设置为utf-8,tomcat为gbk,request为gbk 能正确显示中文吗,我返回给浏览器到编码设置是utf-8好,还是gbk好啊? 如果这个时候数据库为utf-8,数据库里的中文安全吗?2,如果我一致使用gbk,那我用javascript中的encodeURI() 方法对url进行编码,在发送到服务器,会有问题吗?
比如:
URL:http://localhost:8080/example/中国?name=中国
编码后:
URL:http://localhost:8080/example/%D6%D0%B9%FA?name=%D6%D0%B9%FA 
这样传过去,服务器会正确编码吗,就算我都设置成gbk。3,ajax都是使用utf-8来传递参数的吗?