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