`
kdlqbz
  • 浏览: 29460 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类

java从数据库导出.csv文件及中文乱码问题

阅读更多
要输出csv文件,只要改一下头信息就可以,如下设置就可以:
response.setContentType("application/csv;charset=gb18030");
response.setHeader("Content-Disposition","attachment; filename=x.csv");

乱码问题:
一开始我觉的编码设置的应该是正确的(在网上看资料也是这样设置),应该不是编码问题了,搞不明白,后来我把设置头信息的语句放在了最前面,中文乱码问题就解决了!

*这里还使用了中文转拼音的外包(pinyin4j.jar)--只关心导出csv文件的不用管它,主要看绿色字体的代码


我是写在了servlet当中
public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  response.setContentType("application/csv;charset=gb18030");
   response.setHeader("Content-Disposition","attachment; filename=x.csv");


   PrintWriter out = response.getWriter();//放在第一句是会出现乱码
     String str = request.getParameter("name");
     //out.println(str.charAt(0));
    try {
   Class.forName("com.mysql.jdbc.Driver");
  } catch (ClassNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  
  try{
   java.sql.Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","accp");
     //out.println(con);
     java.sql.Statement stat = con.createStatement();

     ResultSet rs = stat.executeQuery("desc book");//mysql语法
     while(rs.next()){
      out.print("\""+(String)rs.getObject(1)+"\",");//输出表的列名
     }
     out.print("\n");
    
     rs = stat.executeQuery("select * from book");
     while(rs.next()){
      String name=rs.getString(3);
      char c = name.charAt(0);
      
     String[] t2 = new String[10];
      //宣告輸出的格式
      net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat t3 = new
        HanyuPinyinOutputFormat();
     t3.setCaseType(HanyuPinyinCaseType.UPPERCASE);
     t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
     t3.setVCharType(HanyuPinyinVCharType.WITH_V);

         t2 = PinyinHelper.toHanyuPinyinStringArray(c, t3);
         if(t2[0].charAt(0)==str.toUpperCase().charAt(0)){
          out.print("\""+rs.getInt(1)+"\","); //单元格的内容用""并用","隔开
          out.print("\""+rs.getString(2)+"\",");
          out.print("\""+name+"\",");  
          out.print("\""+rs.getFloat(4)+"\"\n");// \n在excel里也是换行
         }
        
    }
  }catch(SQLException e){
  e.printStackTrace();
  } catch (BadHanyuPinyinOutputFormatCombination e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  out.flush();
  out.close();
}

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/diquren/archive/2008/11/14/3300141.aspx
分享到:
评论
1 楼 ajonjun 2010-11-24  
ACCP北大小鸟

相关推荐

    csv导出大量数据

    - SQL数据库:大部分SQL数据库支持导出查询结果为CSV,如MySQL的`SELECT ... INTO OUTFILE`语句。 - 编程语言:Python、Java、R、Ruby等编程语言都有库或内置函数支持CSV文件的读写,如Python的`pandas`库和`csv`...

    解决数据库存取乱码问题

    在IT领域,数据库存取乱码问题是一个常见的挑战,尤其对于多语言支持或者涉及中文字符的应用来说。这个问题可能出现在多种场景下,如数据输入、查询显示或者导出时。为了解决这一问题,我们需要深入理解字符编码原理...

    dbf解决中文乱码

    在处理包含中文字符的DBF文件时,可能会遇到中文乱码的问题,这通常与编码设置不匹配有关。以下是一些关于解决DBF文件中文乱码的详细知识: 1. **编码问题**:DBF文件的字符编码可能是GBK、GB2312或BIG5等,而你的...

    任意关系数据库sql查询转换成CSV文本文件

    将任意关系型数据库SQL查询或表导出为CSV(逗号分隔符文件)文件,如果想支持不同的数据库,可以将不同的jdbc的jar放到lib文件夹中,按照README文件指引配置好后,运行start.bat即可按照配置批量抽取数据库中的数据...

    CSV导入导出

    2. **数据库管理系统**:从数据库导出数据时,可以选择CSV作为输出格式。例如,在MySQL中,可以使用`SELECT ... INTO OUTFILE`语句将查询结果导出为CSV。 3. **编程语言**:通过编程语言可以自定义导出数据。比如...

    Ireport中文不显示以及乱码十几种解决方案

    四、模板文件问题 5. **模板文件编码**:检查报表模板`.jrxml`文件的编码,确保是UTF-8无BOM格式。可以使用编辑器如Notepad++进行转换。 五、数据库连接问题 6. **数据库连接编码**:如果报表数据来自数据库,确保...

    sqllite数据导入导出到Excel

    将SQLite数据库的数据导入到Excel或从Excel导出到SQLite,对于数据交换和分析具有很高的实用价值。以下将详细讲解这个过程涉及的知识点。 首先,我们需要了解SQLite数据库的基本操作。SQLite提供了一个命令行工具,...

    将xml文件转换成csv格式

    而CSV则是一种简单、易于处理的格式,常用于数据导入导出,特别是与数据库或电子表格软件的交互。 将XML文件转换为CSV格式是一项常见的任务,尤其在数据分析和数据迁移时。这种转换有助于简化数据处理,因为CSV文件...

    jfreechart-1.0.13中文乱码,数值显示等问题

    2. 对数据源进行编码转换:确保你的数据源(如CSV或数据库)正确编码为UTF-8,避免在读取时产生乱码。 3. 在生成图表的文本元素时,使用对应的编码设置,如: ```java TextAttribute.FONT, new Font("SimSun", Font....

    jqgrid 导出成为 JSON, XML, CSV, TSV, TXT, SQL, Word, Excel, PNG,PDF格式

    jqGrid 支持将数据导出为 CSV 文件,方便用户在 Excel 中进行数据分析和处理。 4. **TSV (Tab Separated Values)**: 制表符分隔值,与 CSV 类似,只是字段间使用制表符分隔,同样适用于电子表格软件。jqGrid 也支持...

    快速解决mysql导出scv文件乱码、蹿行的问题

    在IT行业中,数据库管理和数据迁移是常见的任务,...通过上述方法,可以有效地解决MySQL导出CSV文件时的乱码和蹿行问题,同时确保数据导入导出过程的顺利进行。在实际工作中,了解并掌握这些技巧将极大地提高工作效率。

    Eclipse 开发JSP中文乱码解决方案

    - 当从外部源导入或导出数据,比如数据库、CSV文件等,也需要检查和调整它们的编码设置。 通过以上步骤,你应该能有效地解决Eclipse开发JSP时遇到的中文乱码问题。在实践中,乱码问题可能由多种因素引起,因此,...

    Neo4j批量导入

    - 对于从其他数据库系统中批量导出CSV文件的需求,可以使用工具如Oracle的`sqluldr2`。 - 通过命令行方式批量导出数据,示例命令如下: ```bash sqluldr2 用户名/密码@连接名 query="select fildA as \...

    mysql中文乱码解决方案

    在使用MySQL数据库的过程中,可能会遇到中文显示乱码的问题。中文乱码问题通常是由于字符集设置不正确导致的。为了解决这个问题,我们需要从多个角度进行排查与解决,包括检查系统环境变量、MySQL配置文件、客户端...

    CSVParser:这是一个 Java CSV 解析器,目前仅将您的 csv 输出到控制台

    CSV 格式是一种常见的数据交换格式,广泛应用于数据分析、数据库导入导出和电子表格软件之间。这个 Java 库提供了一个简单的方法,将 CSV 文件的内容解析并输出到控制台,对于开发者来说,它是一个方便的调试或快速...

    excel导入导出------第一天

    本文将详细讲解Excel导入与导出的基本流程、常见问题及解决策略。 1. 数据导入: - **CSV文件导入**:CSV(Comma Separated Values)是一种通用的数据格式,用于存储表格数据。在Excel中,可以通过“数据”菜单...

    利用 进行IE数据导出

    在IT领域,数据导出是一项常见且重要的任务,尤其是在企业级应用中,用户往往需要将数据库中的数据以各种格式(如CSV、Excel等)导出,以便于数据分析、报告生成或进一步的数据处理。利用IE(Internet Explorer)...

    上机课数据库MySchool

    从这个列表来看,我们可能有一个包含多个文件的压缩包,这些文件构成了“MySchool”数据库的组成部分。通常,这样的数据库可能包括数据库脚本(如SQL文件),用于创建数据库结构;数据导入导出文件(如CSV或XML),...

    mysql解决中文问题文档

    MySQL数据库在处理中文字符时,有时会出现乱码现象,这主要与字符编码设置有关。本文档将详细解析如何解决MySQL中的中文乱码问题,无需卸载MySQL,只需通过几条命令即可轻松解决。 首先,我们需要了解MySQL中的字符...

    CSV

    确保正确读取文件的编码,以免出现乱码问题。 4. 首行:CSV文件的第一行通常是列名,但这不是强制性的。如果文件没有列名,那么数据的含义需要根据上下文来理解。 5. 数据类型:CSV文件自身不包含数据类型的定义,...

Global site tag (gtag.js) - Google Analytics