将request.getParameter("name").getBytes("ISO-8859-1"))换成
new String(request.getParameter("name").getBytes("8859_1"),"gb2312")

解决方案 »

  1.   

    WAP要把页面文字转化为utf8才行
    &#xh586
      

  2.   

    out.print(new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8"))
      

  3.   

    要治标治本才行,试试看按以下的办法问题:表单POST的中文数据乱码
    原因:server缺省使用ISO-8859-1方式来处理
    解决:添加过滤器
    TOMCAT安装目录webapps\servlets-examples\WEB-INF\classes\filters
    \SetCharacterEncodingFilter.java文件提供了过滤功能,添加到自己的
    Web应用中,修改一下package等设置。
    在应用的web.xml里加入声明:
    <filter>
    <filter-name>Set Character Encoding</filter-name>
    <filter-class>filters.SetCharacterEncodingFilter</filter-class>
    <init-param>
    <param-name>encoding</param-name>
    <param-value>GB2312</param-value>
    </init-param>
    </filter>
    <filter-mapping>
    <filter-name>Set Character Encoding</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
    原理:filter声明过滤器将负责Web应用 /* 即所有请求的过滤
    将其request对象的编码改变为GB编码,具体见filter类内详细代码问题:直接通过URL的get请求乱码,如http://aa.bb.com/index.jsp?a=男&b=女,其中的中文不正常
    原因:Tomcat5.x中QueryString的处理方式与表单不同,所以除了过滤器,还需要改设置
    解决:修改Tomcat的conf/server.xml文件,为Connector元素添加URIEncoding元素,指定字符集
    <Connector port="80"  maxThreads="150" minSpareThreads="25"
    maxSpareThreads="75" enableLookups="false" redirectPort="8443"
    acceptCount="100" debug="0" connectionTimeout="20000"
    disableUploadTimeout="true" URIEncoding="GB2312"/>
    原理:此属性可以迫使Tomcat服务器在处理URL的get请求时,使用指定的字符集来处理
    记得你所有的页面都要设为GB2312编码的
      

  4.   

    new String(request.getParameter("name").getBytes("8859_1"),"gb2312")out.print(new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8"))还是乱码
      

  5.   


    在取变量之前加上
    request.setCharacterEncoding("GBK");如:
    request.setCharacterEncoding("GBK");
    request.getParameter("name");就没问题了!
      

  6.   


    <?xml version="1.0" encoding="UTF-8"?> 
    <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.nettoo.com.cn/"> 
    <% response.setContentType("text/vnd.wap.wml"); %> <wml> 
    <card id="start"> 
    <p>sdf<br/> 
    fffAcceptfff<br/> </p>
    <p>
    &#x7528;&#x6237;ID:<input name="uid" size="15"/><br/> 
    &#x5bc6;&#x7801;:<input name="upwd" type="password" size="15"/><br/>
    </p>
    <img src="images/111.jpg" alt="haohao"/>
    </card>
     
    </wml> 中文是这样的&#x7528;&#x6237;拷贝上面那些就可以了
      

  7.   

    jfy3d(剑事) 同意!但是想问一下 jfy3d(剑事) 我想显示“用户名”三个中文,我怎么得到其相应的utf8?难道我写一个小程序,转换成utf8,然后把得到的utf8粘到wap文件里?
      

  8.   

    package com;public class TranCharset {    private static final String PRE_FIX_UTF = "&#x";
        private static final String POS_FIX_UTF = ";";    public TranCharset() {
        }    /**
         * Translate charset encoding to unicode
         *
         * @param sTemp charset encoding is gb2312
         * @return charset encoding is unicode
         */
        public static String XmlFormalize(String sTemp) {
            StringBuffer sb = new StringBuffer();        if (sTemp == null || sTemp.equals("")) {
                return "";
            }
            String s = TranCharset.TranEncodeTOGB(sTemp);
            for (int i = 0; i < s.length(); i++) {
                char cChar = s.charAt(i);
                if (TranCharset.isGB2312(cChar)) {
                    sb.append(PRE_FIX_UTF);
                    sb.append(Integer.toHexString(cChar));
                    sb.append(POS_FIX_UTF);
                } else {
                    switch ((int) cChar) {
                        case 32:
                            sb.append("&#32;");
                            break;
                        case 34:
                            sb.append("&quot;");
                            break;
                        case 38:
                            sb.append("&amp;");
                            break;
                        case 60:
                            sb.append("&lt;");
                            break;
                        case 62:
                            sb.append("&gt;");
                            break;
                        default:
                            sb.append(cChar);
                    }
                }
            }
            return sb.toString();
        }    /**
         * 将字符串编码格式转成GB2312
         * @param str
         * @return
         */
        public static String TranEncodeTOGB(String str) {
            try {
                String strEncode = TranCharset.getEncoding(str);
                String temp = new String(str.getBytes(strEncode), "GB2312");
                return temp;
            } catch (java.io.IOException ex) {            return null;
            }
        }    /**
         * 判断输入字符是否为gb2312的编码格式
         *
         * @param c 输入字符
         * @return 如果是gb2312返回真,否则返回假
         */
        public static boolean isGB2312(char c) {
            Character ch = new Character(c);
            String sCh = ch.toString();
            try {
                byte[] bb = sCh.getBytes("gb2312");
                if (bb.length > 1) {
                    return true;
                }
            } catch (java.io.UnsupportedEncodingException ex) {
                return false;
            }
            return false;
        }    /**
         * 判断字符串的编码
         *
         * @param str
         * @return
         */
        public static String getEncoding(String str) {
            String encode = "GB2312";
            try {
                if (str.equals(new String(str.getBytes(encode), encode))) {
                    String s = encode;
                    return s;
                }
            } catch (Exception exception) {
            }
            encode = "ISO-8859-1";
            try {
                if (str.equals(new String(str.getBytes(encode), encode))) {
                    String s1 = encode;
                    return s1;
                }
            } catch (Exception exception1) {
            }
            encode = "UTF-8";
            try {
                if (str.equals(new String(str.getBytes(encode), encode))) {
                    String s2 = encode;
                    return s2;
                }
            } catch (Exception exception2) {
            }
            encode = "GBK";
            try {
                if (str.equals(new String(str.getBytes(encode), encode))) {
                    String s3 = encode;
                    return s3;
                }
            } catch (Exception exception3) {
            }
            return "";
        }
    }转utf8的工具
      

  9.   

    你们还是不明白我的意思。通过这里提交到本页面
    <a href="wap.jsp?name=$(namee)">submit</a>在
    request.getParameter("name").getBytes("ISO-8859-1"))获得的参数值是乱码的。
    我不是要把中文变成&#x7528;&#x6237;这样的utf-8编码。
    我是要接收中文数据。request.getParameter("name").getBytes("ISO-8859-1"))
    在普通的Web方式下接收是正常的,但接收WAP数据时不正确。
      

  10.   

    我原有的中文是可以正常显示的。但request.getParameter("name").getBytes("ISO-8859-1"))
    获得的中文参数是乱码。总是输出??
      

  11.   

    我的wap网站也是乱码
    http://www.yulewu.com/wap
    我的是asp的,大家帮我也看一下吧。
      

  12.   

    Sorry 
    一定是楼主给错分了!!
    :(