iteye_7691 2009-08-21 00:39
浏览 457
已采纳

Jira 保存到数据库时,中文乱码的问题

在Jira中创建项目时,如果输入中文,保存到数据库中变成乱码.
环境:
1.JDK1.6,TomCat 6.0
2.数据库为: Mssql2000
3.Jira的所有页面都能正确显示中文,并且如果手动在数据库中插入中文,也能在页面正确显示.目前就是保存时出现乱码.
4.数据库驱动使用的是微软的JDBC驱动,不知道是不是JDBC驱动的问题?
希望那位朋友能帮助分析哈.谢谢.
[b]问题补充:[/b]
@lovewhzlq
谢谢你的回答,我通过Sql Profile查看后,发现插入前已经是乱码了.这个数据库,用其他程序是可以正常插入中文的. 但Jira页面的编码应该是没得问题的.

  • 写回答

2条回答 默认 最新

  • wanghaolovezlq 2009-08-21 01:27
    关注

    写个编码过滤器啊

    [code="java"]
    /*

    • Licensed to the Apache Software Foundation (ASF) under one or more
    • contributor license agreements. See the NOTICE file distributed with
    • this work for additional information regarding copyright ownership.
    • The ASF licenses this file to You under the Apache License, Version 2.0
    • (the "License"); you may not use this file except in compliance with
    • the License. You may obtain a copy of the License at *
    • http://www.apache.org/licenses/LICENSE-2.0 *
    • Unless required by applicable law or agreed to in writing, software
    • distributed under the License is distributed on an "AS IS" BASIS,
    • WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    • See the License for the specific language governing permissions and
    • limitations under the License. */

    package filters;

    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;
    import javax.servlet.UnavailableException;

    /**

    • Example filter that sets the character encoding to be used in parsing the

    • incoming request, either unconditionally or only if the client did not
    • specify a character encoding. Configuration of this filter is based on
    • the following initialization parameters:
      • encoding - The character encoding to be configured
      • for this request, either conditionally or unconditionally based on
      • the ignore initialization parameter. This parameter
      • is required, so there is no default.
      • ignore - If set to "true", any character encoding
      • specified by the client is ignored, and the value returned by the
      • selectEncoding() method is set. If set to "false,
      • selectEncoding() is called only if the
      • client has not already specified an encoding. By default, this
      • parameter is set to "true".
      *

      Although this filter can be used unchanged, it is also easy to

      subclass it and make the selectEncoding() method more intelligent about what encoding to choose, based on characteristics of the incoming request (such as the values of the Accept-Language and User-Agent headers, or a value stashed in the current user's session. * @author Craig McClanahan @version $Revision: 466607 $ $Date: 2006-10-21 17:09:50 -0600 (Sat, 21 Oct 2006) $ */

      public class SetCharacterEncodingFilter implements Filter {

      // ----------------------------------------------------- Instance Variables
      
      
      /**
       * The default character encoding to set for requests that pass through
       * this filter.
       */
      protected String encoding = null;
      
      
      /**
       * The filter configuration object we are associated with.  If this value
       * is null, this filter instance is not currently configured.
       */
      protected FilterConfig filterConfig = null;
      
      
      /**
       * Should a character encoding specified by the client be ignored?
       */
      protected boolean ignore = true;
      
      
      // --------------------------------------------------------- Public Methods
      
      
      /**
       * Take this filter out of service.
       */
      public void destroy() {
      
          this.encoding = null;
          this.filterConfig = null;
      
      }
      
      
      /**
       * Select and set (if specified) the character encoding to be used to
       * interpret request parameters for this request.
       *
       * @param request The servlet request we are processing
       * @param result The servlet response we are creating
       * @param chain The filter chain we are processing
       *
       * @exception IOException if an input/output error occurs
       * @exception ServletException if a servlet error occurs
       */
      public void doFilter(ServletRequest request, ServletResponse response,
                           FilterChain chain)
      throws IOException, ServletException {
      
          // Conditionally select and set the character encoding to be used
          if (ignore || (request.getCharacterEncoding() == null)) {
              String encoding = selectEncoding(request);
              if (encoding != null)
                  request.setCharacterEncoding(encoding);
          }
      
      // Pass control on to the next filter
          chain.doFilter(request, response);
      
      }
      
      
      /**
       * Place this filter into service.
       *
       * @param filterConfig The filter configuration object
       */
      public void init(FilterConfig filterConfig) throws ServletException {
      
      this.filterConfig = filterConfig;
          this.encoding = filterConfig.getInitParameter("encoding");
          String value = filterConfig.getInitParameter("ignore");
          if (value == null)
              this.ignore = true;
          else if (value.equalsIgnoreCase("true"))
              this.ignore = true;
          else if (value.equalsIgnoreCase("yes"))
              this.ignore = true;
          else
              this.ignore = false;
      
      }
      
      
      // ------------------------------------------------------ Protected Methods
      
      
      /**
       * Select an appropriate character encoding to be used, based on the
       * characteristics of the current request and/or filter initialization
       * parameters.  If no character encoding should be set, return
       * <code>null</code>.
       * <p>
       * The default implementation unconditionally returns the value configured
       * by the <strong>encoding</strong> initialization parameter for this
       * filter.
       *
       * @param request The servlet request we are processing
       */
      protected String selectEncoding(ServletRequest request) {
      
          return (this.encoding);
      
      }
      

      }

      [/code]

      展开全部

      本回答被题主选为最佳回答 , 对您是否有帮助呢?
      评论
    查看更多回答(1条)
    编辑
    预览

    报告相同问题?

    悬赏问题

    • ¥15 全志t113i启动qt应用程序提示internal error
    • ¥15 ensp可以看看嘛.
    • ¥80 51单片机C语言代码解决单片机为AT89C52是清翔单片机
    • ¥60 优博讯DT50高通安卓11系统刷完机自动进去fastboot模式
    • ¥15 minist数字识别
    • ¥15 在安装gym库的pygame时遇到问题,不知道如何解决
    • ¥20 uniapp中的webview 使用的是本地的vue页面,在模拟器上显示无法打开
    • ¥15 网上下载的3DMAX模型,不显示贴图怎么办
    • ¥15 关于#stm32#的问题:寻找一块开发版,作为智能化割草机的控制模块和树莓派主板相连,要求:最低可控制 3 个电机(两个驱动电机,1 个割草电机),其次可以与树莓派主板相连电机照片如下:
    • ¥15 潜在扩散模型的Unet特征提取
    手机看
    程序员都在用的中文IT技术交流社区

    程序员都在用的中文IT技术交流社区

    专业的中文 IT 技术社区,与千万技术人共成长

    专业的中文 IT 技术社区,与千万技术人共成长

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    客服 返回
    顶部