您现在的位置是:首页 >

云云虚拟主机 JSP虚拟主机使用中的乱码问题

火烧 2021-10-27 12:24:55 1036
JSP虚拟主机使用中的乱码问题 在使用JSP的过程中 最使人头疼的一个问题就是中文乱码问题 以下是我在软件开发中遇到的乱码问题以及解决方法 POST提交表单是乱码 常见的情况为:页面都正常 但新插入的

JSP虚拟主机使用中的乱码问题  

云云虚拟主机 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  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码