乱码是否可以转换成中文
jsp页面获取文本框中的中文,未转换就直接将乱码添加进数据库,
是否可以将这乱码取出转换成中文?
------解决方案--------------------没见过哦,学习!帮顶
------解决方案--------------------String str = "亂碼 ";
str = new String(str.getBytes( "gb2312 "));
------解决方案--------------------完美解决方案。
做个过滤器。首先建立文件
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>
用这个过滤器。所有的文件编码问题都解决了
------解决方案--------------------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;
}
------解决方案--------------------我觉得的方案还是得从保存DB之前进行控制。
即使你的编码和DB的编码不吻合(这种case存在的可能性也很小)
你也应该按照DB的编码把数据存进去。
也就是说,存到DB的数据必须是db认识的编码,而不能是乱码。
然后从db里面取出来时,再转换成你所需要的编码格式。
既然已经是乱码了,可能存在数据丢失等等,不确定因素
即使有些能转过来 ,仍然会有很到的风险,希望lz考虑考虑。
=============
多嘴一下:lz遇到问题,不要钻牛角尖,而是要好好想想我为什么出现这么奇怪的case
如何通过其他的方法避免这样的case,也是程序员应该学会的。
------解决方案--------------------把文本的属性里的编码类型改 改 或许这这样可以