大家好。
我现在做中文的编码时遇到了一些问题。
就是要将原先从mysql读出来的中文字符转成utf-8格式的。请问怎么转啊。
能给出例子么。String s = new String("中文");
      String ss = null;
      
      try{
      ss = 
      new String(s.getBytes("gb2312"),"utf-8");
      
      }
      catch(Exception e){;}我是这样的。
但输出ss时,就成了???l

解决方案 »

  1.   

    new String(s.getBytes("gb2312"),"utf-8");
    这样转就对!!
      

  2.   

    String的编码都是unicode
    s.getBytes("utf-8") 会把s转换为utf-8的字节数组。你想要utf-8,就输出这个数组。
    再转回String你想做什么?要搞清楚Sting本身跟编码完全没有关系!!!
    编码只是字节表示和字符表示的一种对应关系!!!
      

  3.   

    String ss = new String(str.getBytes("UTF-8"), "GBK");
    String sss = new String(ss.getBytes("GBK"), "UTF-8");
    String是没有编码的,只有对字节数组操作时才能选择编码
      

  4.   

    首先谢谢大牛们的热心帮助。我是这样的,我从JSP网页的表单中读取字符(中文),然后将这个字符传送到中移动的短信平台MMSC,这个MMSC就是相当于处理我的字符的服务器拉。这个MMSC要求进来的字符是UTF-8。这样我该怎么样处理呢?我看了网上的大牛说的:JAVA在网络传输中使用的编码是"ISO-8859-1"。那我这样理解:首先我从表单里得到的是ISO-8859-1,那我就将它转换为gb2312,再将gb2312转换成UTF-8,然后send它。反正它自己在网络的传输中自己会变成ISO-8859-1。这样对么。结果证明了我是错了求助阿。
      

  5.   

    JAVA在网络传输中使用的编码是"ISO-8859-1"。--中文字符用ISO-8859-1编码就变成0X39即?,并且这个编码是无法逆转的。
    你可以在传输的时候始终用UTF-8。
      

  6.   

    对方要求过来的中文字符必须是UTF-8/
    我怎么实现:你可以在传输的时候始终用UTF-8????我是从表单中读取数据的谢谢楼上的。还有谢谢大家。不断刷新学习ing/呵呵
      

  7.   

    写个类:
    import java.io.IOException;import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;/**
     * @author jmnmu
     *
     */
    public class EncodingFilter implements Filter { /* (non-Javadoc)
     * @see javax.servlet.Filter#destroy()
     */
    public void destroy() {
    // TODO Auto-generated method stub } /* (non-Javadoc)
     * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
     */
    public void doFilter(ServletRequest arg0, ServletResponse arg1,
    FilterChain arg2) throws IOException, ServletException {
    // TODO Auto-generated method stub
    arg0.setCharacterEncoding("utf-8");
    arg2.doFilter(arg0, arg1);
    } /* (non-Javadoc)
     * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
     */
    public void init(FilterConfig arg0) throws ServletException {
    // TODO Auto-generated method stub }}
    在web。xml里面配置:
    <filter>
        <filter-name>EncodingFilter</filter-name>
        <filter-class>pj.encoding.EncodingFilter</filter-class>
      </filter>
      <filter-mapping>
        <filter-name>EncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>