其他分享
首页 > 其他分享> > UTL_FILE写入文件,文件用记事本打开不换行的问题

UTL_FILE写入文件,文件用记事本打开不换行的问题

作者:互联网

UTL_FILE写入文件,文件用记事本打开不换行的问题









皇上爱傻妞
2018-08-15 11:15:24

1073



收藏

1





分类专栏:

问题记录






版权











承接之前的一篇
之前将一行数据写完然后用UTL_FILE.NEW_LINE(l_output);换行结束
但是发现一个问题,生成的文件用记事本打开不会自动换行,像这样

但是用notepad打开会自动换行,因为windows记事本的换行是\r\n,而其他一般是\n。有一种手工的方法就是用notepad打开然后将所有\n替换成\r\n。


不想手工改的话,最后解决方法如下:

 

UTL_FILE.put(l_output,chr(13)||chr(10));
UTL_FILE.NEW_LINE(l_output,0);
用上面的代码替换UTL_FILE.NEW_LINE(l_output);
1234

也可以这样

UTL_FILE.FFLUSH(l_output);-- FFLUSH强制将缓冲的数据写入文件
UTL_FILE.put(l_output,chr(13)||chr(10));12

在这个过程中发现一个问题如果只用UTL_FILE.put(l_output,chr(13)||chr(10));输出的文件内容会减少,这个有点不太明白,可能跟缓存有关。如果有大神知道原因的话欢迎评论赐教:)
最后瞎折腾就加了一个UTL_FILE.NEW_LINE(l_output,0); OK了

还有一个问题就是导出的csv文件直接用excel打开,中文乱码了,知道解决的大神求赐教
用记事本打开然后另存为的方法可以解决,但是不想用手工解决的方法。
而且奇怪的是我选择另存为的时候编码显示的就是utf-8,用notepad打开显示也是utf-8,为什么再另存为一次再用excel打开就正常了呢。搞不懂
————————————————
版权声明:本文为CSDN博主「皇上爱傻妞」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_37613533/java/article/details/81700890

标签:文件,换行,UTL,chr,FILE,output,记事本
来源: https://www.cnblogs.com/max1999/p/13202474.html