golang plsql导出csv乱码 中文为乱码,怎么解决

Jquery插件DataTables中的TableTools导出csv中文乱码
[问题点数:40分,无满意结帖,结帖人songlingxi]
Jquery插件DataTables中的TableTools导出csv中文乱码
[问题点数:40分,无满意结帖,结帖人songlingxi]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关推荐:
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。5753人阅读
要输出csv文件,只要改一下头信息就可以,如下设置就可以:
response.setContentType(&application/charset=gb18030&);
response.setHeader(&Content-Disposition&,&& filename=x.csv&);
一开始我觉的编码设置的应该是正确的(在网上看资料也是这样设置),应该不是编码问题了,搞不明白,后来我把设置头信息的语句放在了最前面,中文乱码问题就解决了!
*这里还使用了中文转拼音的外包(pinyin4j.jar)--只关心导出csv文件的不用管它,主要看绿色字体的代码
我是写在了servlet当中
public void& doPost(HttpServletRequest request, HttpServletResponse response)
&& throws& ServletException, IOException {
& response.setContentType(&application/charset=gb18030&);
&& response.setHeader(&Content-Disposition&,&& filename=x.csv&);
&& PrintWriter out = response.getWriter();//放在第一句是会出现乱码
&&&& String str = request.getParameter(&name&);
&&&&& //out.println(str.charAt(0));
&&& Class.forName(&com.mysql.jdbc.Driver&);
& } catch (ClassNotFoundException e)& {
&& // TODO Auto-generated catch block
&& e.printStackTrace();
&& 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网站的观点或立场
访问:66694次
排名:千里之外
原创:14篇
转载:58篇
(8)(1)(1)(3)(1)(1)(1)(2)(4)(6)(7)(1)(6)(5)(27)magento解决导出csv文件打开乱码
今天处理PHP导出数据时遇到了乱码问题,下载的程序文件为utf-8编码,下载下来的csv文件用编辑器打开也是utf-8编码,但直接用excel打开时确显示乱码。后来从网上找到一篇文章得以解决,在此保存。
解决php导出csv文件打开乱码郝国梁 (日 11:57) | 暂无评论 |
暂无引用通告
什么是CSV文件?Comma Separator
Value(逗号分隔值)是也。常常用来数据转换的中间文件存在,比如:从Mysql中导出数据到CSV,导入CSV到SqlServer中。最近在用Epsilon的邮件服务做邮件营销,Epsilon的web前端接受csv格式的邮件列表,于是乎在Linux下用PHP脚本从Mysql数据库中将user表的数据按照条件导出成csv,以便导入到Epsilon的web前端发邮件,问题出现了,使用utf-8编码导出CSV文件,打开后里边的中文成了乱码(Windows下CSV文件默认与Microsoft
Excel关联),用Notepad++或者Word打开正常,不过排版很乱,看着累呀。
百度一下,找到原因:BOM惹的祸,微软惹的祸。
什么是BOM?Byte Order Mark(比特序标记)是也。
为 了识别 Unicode 文件,Microsoft 建议所有的 Unicode 文件应该以 ZERO WIDTH NOBREAK
SPACE字符开头。这作为一个"特征符"或"字节顺序标记(byte-order
mark,BOM)"来识别文件中使用的编码和字节顺序(big-endian或little-endian),具体的对应关系见下表。
BytesEncoding Form00 00 FE FFUTF-32, big-endianFF FE 00 00UTF-32,
little-endianFE FFUTF-16, big-endianFF FEUTF-16, little-endianEF BB
类Unix系统中并没有使用 BOM,因为它会破坏现有的 ASCII 文件的语法约定。
我的php源码文件是用NotePad++生成的,在Centos下执行,格式为:以UTF-8无BOM格式编码,因此要想导出Microsoft
Excel可以正常显示的UTF-8的CSV文件,需要显式的输出BOM(EF BB
BF,上表的最后一种类型),然后再输出Mysql中的有效数据。编写如下函数:
function output_csv($file_name,$content)
$content = "\xEF\xBB\xBF".$ //添加BOM
if( empty( $file_name ) )
$file_name = date("Ymd")."csv";
header( "Cache-Control: public" );
header( "Pragma: public" );
header( "Content-type: text/csv" ) ;
header( "Content-D filename={$file_name}" ) ;
header( "Content-Length: ". strlen( $content ) );
在magento中
解决linux下到处excel文件乱码,需要在app/code/core/Mage/Adminhtml/Block/Widget/Grid.php中的
protected function _getExportHeaders()
$row = array();
foreach ($this-&_columns as $column) {
&&&&&&&&&&&
if (!$column-&getIsSystem()) {
&&&&&&&&&&&&&&&
$row[] = $column-&getExportHeader();
&&&&&&&&&&&
protected function _getExportHeaders()
$row = array();
foreach ($this-&_columns as $column) {
&&&&&&&&&&&
if (!$column-&getIsSystem()) {
&&&&&&&&&&&&&&&
"\xEF\xBB\xBF".$column-&getExportHeader();
&&&&&&&&&&&
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。golang读取csv文件并输出
1人收藏此代码,
golang读取csv文件并输出
package main
&encoding/csv&
func main() {
file, err := os.Open(&names.txt&)
if err != nil {
fmt.Println(&Error:&, err)
defer file.Close()
reader := csv.NewReader(file)
record, err := reader.Read()
if err == io.EOF {
} else if err != nil {
fmt.Println(&Error:&, err)
fmt.Println(record) // record has the type []string
//该代码片段来自于: /codes/go/7682
相关代码片段:
最新Go语言代码片段
合作网站:

我要回帖

更多关于 java导出csv 乱码 的文章

 

随机推荐