求助,各位帮帮忙,为什么我输入某些中文会出现乱码,大部分(甚至98%)都不会出现乱码?出现乱码的文字如:勍.大家有没有遇到过,在线等待。谢谢了

解决方案 »

  1.   

    遇到过一次 建议将编码方式改为gb2312或者gbk再不行就改为gbk 反正我的改一下就好了
    如果是jsp中的话 可以这样写
    如:
       String name = request.getAtrriubt("userName");
      name = new String(name.getByte("ISO-8859-1"),"gb2312")
      

  2.   

    什么乱码问题的 重来都建议用UTF-8
      

  3.   

    String name = request.getParameter("realName");
    name = new String(name.getBytes("ISO-8859-1"),"UTF-8");
    用这个把你取到的字符串给转换下。
      

  4.   

    用的是UTF-8编码,如果我输入:勍共  页面显示:?共。对于什么文字会出现乱码,我不太了解。
      

  5.   

    统一编码   从jsp到js文件到css文件   到request和response的作用域  全部设置UTF-8 跟国际化接轨 嘿嘿
      

  6.   

    楼主不会是用的IE6 + utf-8吧
      

  7.   

    问题说清楚~~
      建议用
        new String(name.getBytes("ISO-8859-1"),"UTF-8")转换
       或者你可以改变编码;使用UTF-8/GBK
      

  8.   

    JSP页面的page里面的编码改了没?
      

  9.   

    建议用UTF-8  LZ你用的什么编码方式啊
      

  10.   

    楼主,建议你说说你建的是什么类型的工程,比如:se的界面部分乱码或者是控制台乱码,还有就是jsp页面乱码,和写文本的时候乱码等等,虽然解决办法有点相似,但是具体情况还是有点差别的。祝你好运。
      

  11.   

    用UTF-8,写一个过滤器,我博客上有。
      

  12.   

    JAVA出现乱码的地方很多,不同的地方根据不同的情况使用不同的方式去解决,不过总的来说都是字符集不对,我现在猜测的是LZ是在JSP页面内部有字符集显示不对,大部分字符对的,而少部分字符不对,一般是由于你使用的字符集编码方式是:GB2312,其只支撑六千多个字符,普遍我们使用GBK支撑2两万多个字符,而GB180330可以支持两万七千多个字符,UTF-8可以支持的汉字个数没有GBK多(但是比GBK2312多),但是其更加适合于网络的国际规范化,因为它是国际编码。这个算是CSDN上第二次看到差不多的问题,不过问得不是很清楚是在什么时候是乱码,LZ可以先自己定位一下到底那里出的乱码。如果你确认在JAVA程序提取数据时是正确的,而显示到JSP页面,有问题,那么此时,在JSP页面上修改一下部分:
    <%@ page contentType="text/html;charset=GBK" %>如果你确定是因为本地浏览器问题造成,可能浏览器默认是英文字符集或GB2312,那么你在页面上加一行:
    <meta http-equiv="Content-Type" content="text/html; charset=GBK">一下情况可能不是你遇到的,不过作为以后参考:
    如果你是使用weblogic,而WebLogic不能正确编译你的JSP文件,那么在你的WEB-INF文件夹下编辑weblogic.xml,如果没有,就创建一个,在其中加入一下内容,重启当前应用即可:
    <jsp-descriptor> 
    <jsp-param>
    <param-name>compilerSupportsEncoding</param-name> 
    <param-value>true</param-value> 
    </jsp-param> 
    <jsp-param> 
    <param-name>encoding</param-name> 
    <param-value>GBK</param-value> 
    </jsp-param> 
    </jsp-descriptor> 如果你是传递中文,如通过request.getParameter("")获取出来的中文不对的话,此时,在你的web.xml中加入以下内容:
    <context-param>
    <param-name>weblogic.httpd.inputCharset./*</param-name>
    <param-value>GBK</param-value>
    </context-param>如果WEBLOGIC从数据库中读取出来是乱码,而数据库编码是GBK,那么此时将WebLogic的读取方式修改一下,启动时增加编码设置:
    Weblogic.codeset=GBK
      

  13.   

    如果传输的是表单参数,则在两个页面的pageEncoding都设置为utf-8编码。charset设置为gb2312
      

  14.   

    设置下编码集,有3中解决方法,第一设置request、response的编码集,第二,如果你用tomcat的话,还是设置下tomcat的编码集,第三如果还不行的话,你只能一个一个转化了
    String name = request.getParameter("realName");
    name = new String(name.getBytes("ISO-8859-1"),"UTF-8");
      

  15.   

    在struts.xml中写入
    <constant name="struts.i18n.encoding" value="utf-8"></constant>
    或在struts.properties中写入
    struts.i18n.encoding=utf-8
      

  16.   

    按楼主的说法并不是所有的汉字都是乱码,只有部分生僻字是,那我怀疑是字符集的问题,这个字符集里没有包含这个汉字,所以我建议你用GB18030试试,这个比GBK和GB2312都要新,收录的汉字也更多。
      

  17.   

    用post方法提交 不要用get试试
      

  18.   

    不要用GB2312
    要用就用GBK或UTF-8
    建议使用UTF-8.与国际接轨
    而且在网络上传输也会比较 快
      

  19.   

    一般来说都是编码问题 你可以加一句 response.setContentType("text/html;charset=gb2312");
                  request.setCharacterEncoding("GB2312");还有就是你的提交最好用 POST方法
      

  20.   

    我已经试过了,我在服务器端打印的出来的都是正确的,可是经过对数据库进行UPDATE之后就不正确了。
      

  21.   

    只要是中文都会出现"?".
    UTF-8应该不会出现,数据库没问题(输入数据,里面都乱码)吧!
      

  22.   

    刚查了一下
    GB 2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个;同时收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个字符。GB 2312的出现,基本满足了汉字的计算机处理需要,它所收录的汉字已经覆盖中国大陆99.75%的使用频率。对于人名、古汉语等方面出现的罕用字,GB 2312不能处理,这导致了后来GBK及GB 18030汉字字符集的出现。尽量使用统一的编码`不要几个一个网页使用UTF8,一个使用GB2312.这样也会造成乱码。
      

  23.   

    jsp中文乱码解决方法大全
    JSP HTML, 知识 || 趣闻, by 三少.
     
    1。数据库在创建的时候,指定其编码为UTF-8.  (1)oracle:
             SQL> select userenv('language') from dual;
             USERENV('LANGUAGE')
             ———————————————
             SIMPLIFIED CHINESE_CHINA.UTF8  (2)postgres:
            CREATE DATABASE "EnterInfoPortal"
            WITH OWNER = postgres
             ENCODING = 'UTF8'
            TABLESPACE = pg_default;
            GRANT ALL ON DATABASE "EnterInfoPortal" TO postgres;
            jdbc url参考:jdbc:postgresql://127.0.0.1/FINANCIAL?charSet=UTF8
      (3)DB2:
            db2 "CREATE DATABASE dbname USING CODESET UTF-8 TERRITORY CN"
            jdbc url无须指定编码。
      (4)SqlServer:
             很久没用过,待补充  (5)MySQL(没用过,应网友要求,抄来的,具体能通过否待验证):
             安装mysql的时候选utf-8;管理工具安装后,首先设置管理工具 client编码为中文的gb2312 gbk,这与mysql无关
             建库的时候选utf-8
             建表的时候选utf-8 utf_unicode_ci 两项
             建字段的时候选utf-8 utf_unicode_ci 两项
             jdbc url参考:jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false
    ————————————————
    2。新建web项目别的先不干,先选中项目:右键->properties->Info->Text file encoding:Other:UTF-8。但我用的JBuilder 2007似乎在JS文件上需要重新弄一下:新建*.js文件,右键该文件->properties->Info->Text file encoding:Other:UTF-8。再把原来带中文的^C^V过来,save。如果是把js所在的目录设为UTF-8,然后新建js文件,貌似不能继承,得一个个这么^C^V,烦。
    ————————————————
    3。tomcat的配置为了保证某些中文文件名的文件能够被正确访问,需要修改tomcat/conf/server.xml,增加:<Connector port="8088" maxHttpHeaderSize="8192"
      maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
      enableLookups="false" redirectPort="8443" acceptCount="100"
      connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />注意:  开发时,修改了tomcat安装目录,怎么还是乱码?CAUSE:  开发时,JBuilder2007(eclipse maybe)并没有发布到tomcat安装目录下,而是在workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\conf有个相应的server.xml文件,需要改这个,在JB下才有效。具体tmp0/tmp1/tmpN由发布的次数/项目个数来定。
    ————————————————
    4。jsp页面保证任何jsp的第一行都是:<%@page contentType="text/html; charset=UTF-8"%>并且在jsp页面不要再出现charset的字样!有的同志第一行按上面所述指定了,下面又来一个:<META http-equiv='Content-Type' content='text/html;charset=gb2312'>更有甚者,居然在包含的JS里面来这么一句:document.charset='gb2312';你说在JSP里面<script language="JavaScript" type="text/JavaScript">   
      document.charset='gb2312';  
    </script> 写也就罢了,我还好找些,你把它另外存个文件,然后引入,不是磨人吗?须知编码不统一,才是乱码之根源啊,娘希匹!
    ————————————————
    5。struts1.X的action编码处理struts2.X没用过,应该可以用相应的办法来做,比如弄个Filter  (1)建一个Servlet(想了半天,这里应该就是Filter类似的作用),code:
     Java code
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;import org.apache.struts.action.*;public class ComicActionServlet extends ActionServlet {
        public static final long serialVersionUID = -1L;    protected void process(HttpServletRequest request,
                HttpServletResponse response) throws IOException, ServletException {
            request.setCharacterEncoding("UTF-8");        super.process(request, response);
        }
    }
       
     (2)web.xml配置所有的Action都从这里经过,web.xml: XML code
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>
        <servlet>
            <servlet-name>ReportEngineServlet</servlet-name>
            <servlet-class>servlets.ReportEngineServlet</servlet-class>
        </servlet>
        <servlet>
            <servlet-name>BackgroundServlet</servlet-name>
            <servlet-class>
                com.socix.comic.common.BackgroundServlet
            </servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet>
            <servlet-name>action</servlet-name>
            <servlet-class>
                com.socix.comic.common.ComicActionServlet
            </servlet-class>
            <init-param>
                <param-name>debug</param-name>
                <param-value>2</param-value>
            </init-param>
            <init-param>
                <param-name>config</param-name>
                <param-value>
                    /WEB-INF/config/struts-config.xml,
                    /WEB-INF/config/struts-config-admin.xml,
                    /WEB-INF/config/struts-config-series.xml,
                    /WEB-INF/config/struts-config-chapter.xml,
                    /WEB-INF/config/struts-config-hotnew.xml,
                    /WEB-INF/config/struts-config-stat.xml
                </param-value>
            </init-param>
            <load-on-startup>2</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>action</servlet-name>
            <url-pattern>*.do</url-pattern>
        </servlet-mapping>
        <servlet-mapping>
            <servlet-name>ReportEngineServlet</servlet-name>
            <url-pattern>/servlets/ReportEngineServlet</url-pattern>
        </servlet-mapping>
        <taglib>
            <taglib-uri>/WEB-INF/tld/struts-bean.tld</taglib-uri>
            <taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location>
        </taglib>
        <taglib>
            <taglib-uri>/WEB-INF/tld/struts-html.tld</taglib-uri>
            <taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location>
        </taglib>
        <taglib>
            <taglib-uri>/WEB-INF/tld/struts-logic.tld</taglib-uri>
            <taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location>
        </taglib>
        <taglib>
            <taglib-uri>/WEB-INF/tld/struts-nested.tld</taglib-uri>
            <taglib-location>
                /WEB-INF/tld/struts-nested.tld
            </taglib-location>
        </taglib>
        <taglib>
            <taglib-uri>/WEB-INF/tld/struts-template.tld</taglib-uri>
            <taglib-location>
                /WEB-INF/tld/struts-template.tld
            </taglib-location>
        </taglib>
        <taglib>
            <taglib-uri>/WEB-INF/tld/struts-tiles.tld</taglib-uri>
            <taglib-location>/WEB-INF/tld/struts-tiles.tld</taglib-location>
        </taglib>
    </web-app>   (3)注意上面的web.xml里面:<?xml version="1.0" encoding="UTF-8" ?>
      (4)还没完,在web.xml里面用到的struts的配置文件,其头部都和web.xml一样,应为:
            <?xml version="1.0" encoding="UTF-8" ?>  ———————————————— 6 最后还有spring的配置   <!– 用于解决请求编码乱码问题 –>
    <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>
            org.springframework.web.filter.CharacterEncodingFilter
        </filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
      

  24.   

    统一一下字符集试试我的字符集都设的是UTF-8
      

  25.   

    字符编码:
    1.mysql utf8,包括url已加characterEncoding=utf8
    2.所有配置文件 utf8编码
    3.struts2 utf8已配(默认就是)
    4.tomcat URIEncoding="UTF-8" 已配
    5.jsp已写<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
      

  26.   

    我用的是INFROMIX数据库,我程序打印日志的时候在后台看到的是中文是正常的,可是在数据库里面查看就是乱码、
      

  27.   

    问题解决了,原来是GB2312中不存在这个字,后来改成GBK就可以了。谢谢各位