struts2jsp:
  <form action="addUser.action" method="post">
<table>
<tr><td colspan="3" style=" font-weight:700; text-align:center;">新增用户</td></tr>
<tr><td>用户名</td><td><input type="text" name="loginName"/></td><td></td></tr>
<tr><td>真实名字</td><td><input type="text" name="RealName"/></td><td></td></tr>
<tr><td>性别:</td><td><input type="radio" name="sex" value="男" checked/>男<input type="radio" name="sex" value="女"/>女</td><td></td></tr>
<tr><td colspan="3"><input type="button" value="提交" onclick="check();"/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="reset" value="取消"/></td></tr>
</table>
</form>
如果用户名,真实姓名等列输入中文字符的时候,可以正常插入数据库且显示无问题。(请注意这条)但是对于radio,插入数据库的时候显示这样的问题:Incorrect string value: '\xE7\x94\xB7' for column 'sex' at row 1据了解,\xE7\x94\xB7' 是男的ascii值。
但是如果将value="男"改为value="0",则不会出现问题。这是怎么回事?

解决方案 »

  1.   

    jsp页面的encoding没有问题,我全部都是UTF-8.包括数据库也做了更改。<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
      

  2.   

    的确有点怪,无法判断出是什么原因。不过话又说回来了,设计数据库是没有必要用varchar或者char类型来区分性别吧,可以使用tinyint或者bit来表示都行,即使用varchar也可以使用“male”或“m”、“female”或“f”来表示哈。
      

  3.   

    一般来说,value="0" seleted=seleted比较常见,到另一个页面再用是否等于零0判断取男或女。另外:
    <tr><td colspan="3" style=" font-weight:700; text-align:center;">新增用户</td></tr>
    最好格式化一下,
    <tr>
        <td>
        </td>
    </tr>
    这样是否好看一点?
      

  4.   

    数据库是什么编码?
    表是什么编码?
    列是什么编码?
    建议全部改成UTF-8,包括数据库、表、列名、工程、页面所有的!
    jdbc:mysql://localhost:3306/test?characterEncoding=utf-8
    最好在这个连接字符串后面加上字符编码。
    写个filter,所有的乱码都解决了。
      

  5.   

    回复楼上,这些全部有设置。
    就差那个filter没配置了。不知具体是怎么回事?现在退而求其次了,改为了female和male。汗~~~
      

  6.   

    打开数据库的时候 有没有 jdbc:// .... charset=GB2312
      

  7.   

    <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
    或字符串.getBytes("ISO-8859-1);     或   request.setcharacterEncoding("gbk"); 
      

  8.   

    页面的字符集要和mysql的要一致,你的数据库可能是ascii,可以改成GBK试试。
    另外像性别这样的字段不需要定义成汉字,可以英文或数字(char 1)
      

  9.   


    那你request和response的编码设置为UTF-8了吗??
      

  10.   

    mysql数据库设置的啥编码格式?utf-8   /   gb2312  ?
      

  11.   

    用 new String(request.getParmara("xxx").getBytes(),"UTF-8");
      

  12.   

    --------MySQL 乱码解决方案-----------------------------
    解决乱码在几个地方要保证编码一致: 
    1.程序连接数据库的URL中设置连接的字符集。如 
    jdbc.xx..database?characterEncoding=gbk 
    2.在建数据库是要指定字符编码。 
    如:create database if not exists netctoss default character set gbk; 
    3.在进入数据库执行SQL脚本时指定字符集。 
    MYSQL中使用:mysql -u username  -p password --defautl-character-set=gbk 
    保证以上几个地方的字符集一致,乱码问题是可以解决的
      

  13.   

    我已经强调过了,jsp页面的en-coding也是UTF-8!
    数据库、JSP、连接数据库、都是UTF-8
      

  14.   

    我也遇到过,最好重装下Mysql
      

  15.   

    遇到过好几次了。
    页面编码、数据库连接编码,数据库默认编码、 在数据库里面创建库和表的时候都指定同样的编码。推荐使用UTF-8,然后出现乱码的机会就小得多了。最后要小心的是,不要声明的编码和文件的编码不同,不然会死的很郁闷。包括你的JSP 和 一些XML 
      

  16.   

    你数据库的sex字段是设成varchar型吗?或者是整型的?
      

  17.   

    把这个函数放到action里面,往数据库存数据的时候,调用这个方法把编码转换一下就可以了,不过页面、数据库的编码要保持一直喔~~public static String isToGB(String src) {
    String strRet = null;
    try {
    strRet = new String(src.getBytes("ISO_8859_1"), "UTF-8");
    } catch (Exception e) {
    e.printStackTrace();
    }
    return strRet;
    }
      

  18.   

    唉,大家都别争了,我已经解决了。将UTF-8改为GBK。