您的位置:程序门 -> java -> web 开发



乱码是否可以转换成中文


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


乱码是否可以转换成中文
发表于:2007-06-18 11:45:35 楼主
jsp页面获取文本框中的中文,未转换就直接将乱码添加进数据库,
是否可以将这乱码取出转换成中文?
发表于:2007-06-18 11:49:051楼 得分:0
路过的,给个答案,谢谢!
发表于:2007-06-18 11:53:522楼 得分:0
没见过哦,学习!帮顶
发表于:2007-06-18 11:59:353楼 得分:0
string   str   =   "亂碼 ";
str   =   new   string(str.getbytes( "gb2312 "));
发表于:2007-06-18 12:40:574楼 得分:0
完美解决方案。
做个过滤器。首先建立文件
filter.characterencodingfilter.java

然后写入代码
package   filter;

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;

public   class   characterencodingfilter   implements   filter   {

public   void   destroy()   {
}

public   void   dofilter(servletrequest   request,   servletresponse   response,   filterchain   chain)   throws   ioexception,   servletexception   {
request.setcharacterencoding( "gbk ");
chain.dofilter(request,   response);
}

public   void   init(filterconfig   conf)   throws   servletexception   {
}

}


然后修改配置文件web.xml


      <filter>
    <filter-name> characterencodingfilter </filter-name>
    <filter-class> filter.characterencodingfilter </filter-class>
        <init-param>
        <param-name> encoding </param-name>
        <param-value> gbk </param-value>
        </init-param>
    </filter>
        <filter-mapping>
    <filter-name> characterencodingfilter </filter-name>
    <url-pattern> /* </url-pattern>
    </filter-mapping>


用这个过滤器。所有的文件编码问题都解决了
发表于:2007-06-18 12:55:455楼 得分:0
???????
这个大家应该都知道的吧,现在是问已经是乱码了,可不可以再转过来。
比如说,现在在一个文本里显示的全是乱码,能不能通过转换成正常的字符呢?
楼主应该是这个意思吧。。。
发表于:2007-06-18 15:14:526楼 得分:0
已经是乱码   如何转换成中文
发表于:2007-06-18 15:49:137楼 得分:0
private     string   iso2gbmibm(string   str)   {
        string   returnvalue   =   " ";
        try   {
          returnvalue   =   new   string(new   string(str.getbytes( "iso8859-1 "),   "utf-8 ").getbytes( "gbk "));
   
        }
        catch   (exception   ex)   {
            logger.error(ex);
        }
        return   returnvalue;
    }
发表于:2007-06-18 16:16:488楼 得分:0
还是不行
发表于:2007-06-18 16:28:509楼 得分:0
我觉得的方案还是得从保存db之前进行控制。


即使你的编码和db的编码不吻合(这种case存在的可能性也很小)

你也应该按照db的编码把数据存进去。
也就是说,存到db的数据必须是db认识的编码,而不能是乱码。

然后从db里面取出来时,再转换成你所需要的编码格式。

既然已经是乱码了,可能存在数据丢失等等,不确定因素
即使有些能转过来   ,仍然会有很到的风险,希望lz考虑考虑。

=============

多嘴一下:lz遇到问题,不要钻牛角尖,而是要好好想想我为什么出现这么奇怪的case
如何通过其他的方法避免这样的case,也是程序员应该学会的。
发表于:2007-06-18 21:27:2910楼 得分:0
把文本的属性里的编码类型改   改     或许这这样可以


快速检索

最新资讯
热门点击