您现在的位置是:首页
>
云云虚拟主机 JSP虚拟主机使用中的乱码问题
JSP虚拟主机使用中的乱码问题 在使用JSP的过程中 最使人头疼的一个问题就是中文乱码问题 以下是我在软件开发中遇到的乱码问题以及解决方法 POST提交表单是乱码 常见的情况为:页面都正常 但新插入的
JSP虚拟主机使用中的乱码问题

在使用JSP的过程中 最使人头疼的一个问题就是中文乱码问题 以下是我在软件开发中遇到的乱码问题以及解决方法 POST提交表单是乱码 常见的情况为:页面都正常 但新插入的数据全是乱码 这种情况 就是因为提交的数据被程序接收后就是乱码 这个乱码又插入数据库了 所以显示不正常 解决方案: a 修改配制来完成 修改tomcat的配制文件server xml中的连接器 加上URIEncoding= GB 就OK了 b 自己写编码转换程序 b a 在与表单交换数据的时候 做转换 这种方式灵活 每一个页面请求写一个转换 或者写一个公共的类 在接收的时候 都做一下转移 代码如下: public static String ISOGBChange(String s) { return EncodeChange(s ISO GB ); } public static String EncodeChange(String s String source_encode String dest_encode) { if(s==null) return null; try { byte[] tmpbyte = s getBytes(source_encode); s = new String(tmpbyte dest_encode); return s; } catch (Exception e) { return ERROR ; } } b b 使用tomcat的web xml中定义的过滤器filter来转换所有的请求编码 这个需要自己去研究一下过滤器的写法 再具体的转换编码 还是b a中的代码进行编码转换的 只是转移不用再写在每个程序中了 数据库中本来就是乱码 就是说数据库里面的数据本来就是乱码 无论您用什么编码连接数据库 查看到的都是乱码 如何确定数据库中本来就是乱码呢?(其实也不太容易确定 我们仅给出一个大概的判断) 您用客户端连接数据库的时候 一定要选择连接编码为GB UTF ISO 等常见的编码格式 连接并查看您的表中内容是不是正常的 若没有一种情况是正常的 应该就可以判定为乱码了 当然 这个判定并不标准 甚至问题很多 但在国内 我想 %以上都用这几种编码 所以我认为这个判定准确性是可以被接受的 解决方案:您用客户端连接数据库的时候 一定要选择连接编码为GB 或者GBK 然后于重新执行数据库脚本 保证数据库里保存的是正常的字符 而不是乱码 从数据库提取出来就是乱码 数据库里本来是正常的 但用JAVA连接后 一经提取 就全乱了 解决方案:修改JAVA连接数据库的URL 加上或者修改URL中的编码为UTF characterEncoding=UTF 若是hibernate的配置问题 jdbc连接url不能有&符号 会导致出错或者后面不生效 我用&代替就好了 不要以为用的是GB 这里就指定为GB (个人认为若指定为GB 驱动又多做了一次编码转换 所以就又成了乱码了) 当然 也可能驱动太旧等情况 上面只说了常见的几种 乱码问题 %以上的应该都是上面讲到的 还有很多情况 就需要您自己慢慢分析了 lishixinzhi/Article/program/Java/hx/201311/26633
很赞哦! (1036)