当前位置: 首页 > news >正文

jsp mysql 导出 excel乱码_jsp存取mysql中文数据结果为乱码的解决方法(转自自己以前的blog)...

网上有很多这方面的资料,但很多要么是零星的几句,要么是长篇大论从编码的概念开始说起,我不是搞理论的,给自己的要求是会用就行。废话不说,开始正题吧。

我的开发环境是:XP-sp2,Tomcat5.0,jdk1.42,mysql4.0.21-nt

在玩jsp时发现,jsp把中文数据存入mysql或者从mysql读取出来显示的是乱码,无语,用百度搜了很多资料,解决问题。现总结一下。

解决方法一:

连接mysql时(无论在从mysql读还是取数据的情况),指定使用的编码方式为gb2312,具体代码如下

//装载mysql-jdbc驱动

Class.forName("com.mysql.jdbc.Driver").newInstance();

//连接数据库

Connection sqlCon = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test?user=root&password=1&useUnicode=true&characterEncoding=gb2312" );

解决方法二:

如果方法一不行那么在方法一的基础上对读入的字符串进行强制编码方式转换。

代码示例如下:

String name = rst.getString("name");

name= new String(name.getBytes("ISO-8859-1"),"gb2312");

注:代码也可以为:String name =new String( rst.getString("name").getBytes("ISO-8859-1"),"gb2312"));其中rst为返回的resultset,ISO-8859-1为mysql默认的编码方式,代码的目的是把以ISO-8859-1的编码转换为gb2312编码方式,这样强制转换,可以解决一部分问题,如果结合方法一,应该可以解决中文乱码问题。

解决方法三:

这个方法在有些文章里是首推的,我首先也是试了这个方法,但是好像不行。这里还是说一下,不知是不是我操作错误。还是先贴原文吧:

"如果数据库中有中文的话而mysql默认的语言不是中文时要在配置文件C:winntmy.ini 中的 [mysqld] 里添加一行:

default-character-set=gbk

相关文章:

  • python面向对象基础知识_python面向对象的基础知识
  • mysql递归查询及节点层级_Mysql中的递归层次查询(父节点下的所有节点)
  • /usr/lib/mysql/plugin权限_给数据库增加密码策略遇到的权限问题
  • datax把text转mysql_使用DataX实现mysql数据迁移
  • haccp体系的参照标准是_食品安全标准与ISO、GMP、HACCP等体系之间的相互关系
  • mac mysql 多实例_Mac上mysql多端口实例配置并设置开机自动启动
  • mysql 主要有哪些函数_mysql中有哪些函数
  • mysql索引失效解决6_简单介绍MySQL索引失效的几种情况
  • java 获取方法的参数_Java 8中如何获取参数名称的方法示例
  • java gui程序运行_13.JAVA之GUI编程将程序打包jar
  • java输入输出学生成绩_java从键盘输入学生成绩,找出最高分,并输出学生成绩等级。...
  • java $ 解析api_Java版抖音解析接口
  • java 10的 6次方_【Java】 剑指offer(15) 数值的整数次方
  • java 方法 返回值 int_关于java字节流类的read()方法返回值为int的思考
  • java 迭代器复制_java设计模式之迭代器模式
  • 深入了解以太坊
  • php的引用
  • SegmentFault for Android 3.0 发布
  • #Java异常处理
  • @angular/forms 源码解析之双向绑定
  • Centos6.8 使用rpm安装mysql5.7
  • css属性的继承、初识值、计算值、当前值、应用值
  • gcc介绍及安装
  • JS实现简单的MVC模式开发小游戏
  • node-glob通配符
  • Otto开发初探——微服务依赖管理新利器
  • 初识MongoDB分片
  • 构建二叉树进行数值数组的去重及优化
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 观察者模式实现非直接耦合
  • 解决iview多表头动态更改列元素发生的错误
  • 你真的知道 == 和 equals 的区别吗?
  • 前端攻城师
  • 区块链技术特点之去中心化特性
  • 设计模式走一遍---观察者模式
  • 树莓派 - 使用须知
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 一个SAP顾问在美国的这些年
  • 用jQuery怎么做到前后端分离
  • 怎么将电脑中的声音录制成WAV格式
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • (二)linux使用docker容器运行mysql
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转载)Linux 多线程条件变量同步
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .net 8 发布了,试下微软最近强推的MAUI
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .Net CoreRabbitMQ消息存储可靠机制
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .net的socket示例
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .NET构架之我见