linux + tomcat + mysql + jsptomact  -  conf/server.xml 中 <Connector port="80" maxHttpHeaderSize="8192"
               .............. URIEncoding="UTF-8" />mysql  - 
"Variable_name","Value"
"character_set_client","utf8"
"character_set_connection","utf8"
"character_set_database","latin1"
"character_set_results","utf8"
"character_set_server","latin1"
"character_set_system","utf8"
"character_sets_dir","/usr/share/mysql/charsets/""Variable_name","Value"
"collation_connection","utf8_general_ci"
"collation_database","latin1_swedish_ci"
"collation_server","latin1_swedish_ci"jsp  -<%@ page language="java" contentType="text/html;charset=UTF-8"
.....
setURL("jdbc:mysql://127.0.0.1:3306/rrr");
.....
大概就是这个环境,不知道为什么不能插入中文,请指教,万分感谢~!请大家帮帮我了~!

解决方案 »

  1.   

    如何不能插入啊?是显示乱码还是出错?简体中文也不能插入?这个可以把你的某个数据库的字符集改过来
    ALTER DATABASE `database_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin ;在my.cnf里的[mysqld]下加default-character-set=utf8,重启mysql服务。这个是改库里某个表要插入中文的属性的字符集。
    ALTER TABLE `表名` CHANGE `属性` `属性` VARCHAR( 50 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL 
    其中的CHARACTER SET utf8 COLLATE utf8_bin 就是改字符集的。总之你把所有关于字符集的地方都改成utf8试试好了。
      

  2.   

    谢谢你的解答,我现在在我自己的机子上照你的做 遇到的情况如下:
    是在windows下"Variable_name","Value"
    "character_set_client","utf8"
    "character_set_connection","utf8"
    "character_set_database","utf8"
    "character_set_results","utf8"
    "character_set_server","utf8"
    "character_set_system","utf8"
    "character_sets_dir","E:\MySQL Server\share\charsets\"
    "Variable_name","Value"
    "collation_connection","utf8_general_ci"
    "collation_database","utf8_bin"
    "collation_server","utf8_general_ci"
    tomact     -     conf/server.xml   中   <Connector   port="80"   maxHttpHeaderSize="8192" 
                                  ..............   URIEncoding="UTF8"   /> 
    .............................................................
    小疑问:utf8 utf-8
    怎么在这里是utf8  在网页里 page   language="java"   contentType="text/html;charset=UTF-8" 
    是utf-8
    有的小混
    tomact 里 这里 URIEncoding="UTF8"  是utf8 ?utf-8?
    ..............................................................在jsp
    里可以插简体中文很正常,
     
    <%@page contentType="text/html;charset=utf-8"%> 
    这展示中文也很正常,
    不过插 繁体时就不行了javax.servlet.ServletException: Data truncation: Data too long for column 'test' at row 1
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
    org.apache.jsp.test1_jsp._jspService(test1_jsp.java:105)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)网页里的繁体中文也不能正常显示,
    如果<%@page contentType="text/html;charset=gbk"%> 
    就可以正常显示,不过这样就不能插如中文 包括简体也不行
      

  3.   

    那你把那些字符集都改成gbk好了,我不知道utf8有没有繁体字的,照你的情况应该是没有了你页面改了gbk可以显示,但是不能插入到数据库里是因为数据库的字符集和你页面的字符集不同了,所以改成相同的应该可以。最好在录入前先执行set names gbk;这个sql语句