我的一个对象在页面封装好后传到类里插入DB,
但是插入后发现DB里有的中文字符是"?"-问号,
比如中文打出来的点"·"或者比较偏僻点多笔画的中文也成了问号。我测试发现DB是没问题的,打印了下发现页面上是正常的,但是到了类里一打印就出现这种情况了。对象类我序列化了 可是还是一样,请问有办法解决吗?

解决方案 »

  1.   

    会不会是你在使用对象获取中文数据时,忘了在获取数据前设置支持中文的编码,试着在获取前你写入
    request.setCharacterEncoding("GBK")
      

  2.   

    查你的DB中字符编码集是什么?MySql里面有character属性,如果设置成非支持中文的,当然插入的时候会有乱码
      

  3.   

    我用的是Sql Server 2005 完美支持中文的 我自己写SQL插入时完全没有问题!  我在插入类里打印时就出现这种问题了  而在页面上则没问题,并且我在对象类里打印还是出了这个问题。肯定是传递过程中的编码丢失
      

  4.   

    我那数据是HTTP请求过来的。编码是GB2312  我用的是UTF-8 但是我转换了呀。而且大多数中文都支持的。只是些生僻字和特殊符号不支持。
      

  5.   


    编码不统一,最容易乱码。既然数据库用UTF8,那么全部就都用UTF8。编码不统一,乱码的根源。http://blog.csdn.net/crazylaa/archive/2009/12/24/5066784.aspx
    http://seagar-collection.javaeye.com/blog/297149
      

  6.   

    换成GBK吧,或者统一使用UTF-8.
    gb2312属于GBK子集!
      

  7.   

    试试这个,90%以上都很管用:
    1。统一字符集2。jsp的js加这个encode(encode(url/中文字符));