linux下文件编码格式转换方法(gb18030utf-8)

linux下文件编码格式转换方法(gb18030utf-8),第1张

linux下文件编码格式转换方法(gb18030/utf-8) 在 Linux 做开发或者系统管理遇到乱码是经常的事情,主要windows下中文的默认编码是bg2312,而 linux下是utf-8。很多时候 涉及到和windows平台系统的通信免不了编码的转化,可能大部分人都用iconv库函数(包含在glib中)和iconv命令来执行编码转换,即: iconv -f gb18030 -t utf-8 file1.txt -o file2.txt 说实话这个命令不好使,一方面容易重复转换,另一方面不支持通配符,无法成批转 换,文件少了还好说,要是一大堆文件岂不是要累死? 今天我要推荐的是另一个 Shell 下编码转换工具enca。用它不仅可以转换编码,还可以查看文件的原始编码,而且还支持成批转换。使用上也比iconv方便一些。安装enca很简单,一般用源安装就行了,enca用法如下: enca -L 当前语言 文件名 enca -L zh_CN file //检查文件的编码 enca -L 当前语言 -x 目标编码 文件名 enca -L zh_CN -x UTF-8 file //将文件编码转换为”UTF-8″编码 enca -L zh_CN -x UTF-8 <file1 >file2 //如果不想覆盖原文件可以这样 除了有检查文件编码的功能以外,”enca”还有一个好处就是如果文件本来就是你要转换的那种编码,它不会报错,还是会print出结果来, 而”iconv”则会报错。这对于脚本编写是比较方便的事情。

关注:CodingTechWork,一起学习进步。

  在Windows系统和Linux系统下的文本格式中,有一个很大的区别就是换行符,我们使用IDEA开发shell脚本时,就会遇到这个问题,一旦将文档格式保存为CRLF时,复制到Linux系统中进行脚本运行时,就会报错。这时就需要一些工具进行文件格式的转换。

1)LF(Line Feed),表示为换行。

2)该格式为Linux或者Unix系统环境下的换行方式,即为 \n

1)CRLF,全称为Carriage Return Line Feed,表示为回车换行。

2)该格式为Windows系统环境下的换行方式,即为 \r\n

  使用 doc2unix 可以将Windows文本转化为Linux或Unix文本,即将 CRLF 格式换为 LF 格式,也就是将换行符 \r\n 换为 \n 。

dos2unix [options] [-c convmode] [-o file ...] [-n infile outfile ...]

在linux系统下可以通过使用特定的pdf库来实现文档格式转换,参考如下方法:

import com.spire.pdf.*

public class PDFtoWord {

public static void main(String[] args) {

//加载测试文档

PdfDocument pdf = new PdfDocument("sample.pdf")

//保存为Word

pdf.saveToFile("ToWord.docx",FileFormat.DOCX)

}

}

注意这里在程序中引入了spire.pdf.jar。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7239418.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存