在处理Debian系统交换的数据时,经常需要对数据进行转换,以确保正确的编码、格式和结构。无论是文本、XML、排版文件还是邮件数据,每种类型的数据都有其特定的处理需求和挑战。在本教程中,我们将探讨各种数据转换工具和技术。
一、文本数据转换工具
参见《Debian文本数据转换工具》。
二、XML数据
参见《Debian XML数据》。
三、排版
参见《Debian排版》。
四、可印刷的数据
参见《Debian可印刷的数据》。
五、邮件数据转换
有助于邮件数据转换的软件包列表:
软件包 | 流行度 | 大小 | 关键词 | 说明 |
sharutils | V:3, I:37 | 1415 | 邮件 | shar(1), unshar(1), uuencode(1), uudecode(1) |
mpack | V:1, I:12 | 108 | MIME | 编码和解码 MIME 信息: mpack(1) 和 munpack(1) |
tnef | V:0, I:7 | 110 | ms-tnef | 解包 MIME 附件类型 “application/ms-tnef”,该格式仅由微软使用 |
uudeview | V:0, I:3 | 105 | 邮件 | 下列格式的编码器和解码器: uuencode, xxencode, BASE64, quoted printable 和 BinHex |
注意:如果邮件客户端可以配置使用 IMAP4 服务器,互联网消息访问协议 版本 4 (IMAP4) 服务器可以用来把邮件从专有邮件系统里面移出来。
1、邮件数据基础
邮件 (SMTP) 数据需要被限制为 7 位数据序列。二进制数据和 8 位文本数据使用 Multipurpose Internet Mail Extensions (MIME) 互联网多用途邮件扩展 和选择的字符集编码到 7 位格式。标准的邮件存储格式是 mbox,它是依据 RFC2822 (由 RFC822 更新) 来的格式。
对于欧洲语言,由于没有什么 8 位字符,”Content-Transfer-Encoding: quoted-printable” 加 ISO-8859-1 字符集通常被用于邮件。如果欧洲文本是被编码为 UTF-8,由于几乎全是 7 位数据,使用 “Content-Transfer-Encoding: quoted-printable” 也是合适的。
对于日语,传统的 “Content-Type: text/plain; charset=ISO-2022-JP” 通常被用于邮件来保持文本在 7 位。但是老的微软系统会在没有声明的情况下使用 Shift-JIS 来发送邮件。如果日语文本是用 UTF-8 编码, 由于含有许多 8 位数据,使用 Base64 是合适的。其它亚洲语言也是类似情形。
注意:
- 如果你的非 Unix 邮件数据可以通过一个具备和 IMAP4 服务通讯的非 Debian 客户端访问,你可以通过运行你的 IMAP4 服务来将邮件数据移出。
- 如果你使用其它邮件存储格式,第一步把它们移动到 mbox 格式比较好。像 mutt(1) 这样多功能的客户端程序可以便捷的完成这类操作。
- 你可以使用 procmail(1) 和 formail(1) 把邮箱内容分开成每一封邮件。每一封邮件能够使用来自 mpack 软件包的 munpack(1) 命令(或其它特异的工具)来获得 MIME 编码内容。
六、图形数据工具
如下是关于图形数据转换、编辑和管理的工具包:
软件包 | 流行度 | 大小 | 关键词 | 说明 |
gimp | V:51, I:252 | 19303 | 图形(位图) | GNU 图形处理程序 |
imagemagick | I:317 | 74 | 图形(位图) | 图形处理程序 |
graphicsmagick | V:1, I:12 | 5565 | 图形(位图) | 图像处理程序(imagemagick派生出来的) |
xsane | V:12, I:143 | 2339 | 图形(位图) | 用于 SANE 的基于 GTK 的前端图形界面 (现在访问扫描仪就很简单了) |
netpbm | V:27, I:326 | 8526 | 图形(位图) | 图形界面的转换工具 |
libheif-examples | V:0, I:2 | 191 | heif→jpeg(bitmap) | 转化 高性能图像文件格式(HEIF) 到 JPEG、PNG 或 Y4M 格式,用 heif-convert(1)命令 |
icoutils | V:7, I:51 | 221 | png↔ico(bitmap) | MS Windows 符号和光标转化为 PNG 格式,或者从 PNG 格式转化为位图格式 (favicon.ico) |
scribus | V:1, I:17 | 30242 | ps/pdf/SVG/… | Scribus DTP 编辑器 |
libreoffice-draw | V:69, I:426 | 10311 | 图形(矢量) | LibreOffice 办公套件-绘画 |
inkscape | V:14, I:114 | 99800 | 图形(矢量) | SVG(可升级矢量图形)编辑器 |
dia | V:2, I:23 | 3908 | 图形(矢量) | 图表编辑器(Gtk) |
xfig | V:0, I:11 | 7849 | 图形(矢量) | 在图形界面下,交互式的生成图像变得方便 |
pstoedit | V:2, I:53 | 1004 | ps/pdf→image(矢量) | PostScript 和 PDF 文件到可编辑的矢量图形的转换器(SVG) |
libwmf-bin | V:7, I:121 | 151 | Windows/image(矢量) | Windows 元文件 (矢量图形数据) 转换工具 |
fig2sxd | V:0, I:0 | 151 | fig→sxd(矢量) | 转换 XFig 文件为 OpenOffice.org 绘画格式 |
unpaper | V:2, I:17 | 412 | image→image | 后处理 OCR 扫描页面的工具 |
tesseract-ocr | V:8, I:34 | 2228 | image→text | 基于惠普的商业 OCR 引擎的免费 OCR 软件 |
tesseract-ocr-eng | V:8, I:34 | 4032 | image→text | OCR 引擎数据:用于英文文本的 tesseract-ocr 语言文件 |
gocr | V:0, I:7 | 545 | image→text | 免费 OCR 软件 |
ocrad | V:0, I:3 | 578 | image→text | 免费 OCR 软件 |
eog | V:60, I:274 | 7770 | 图像(Exif) | Eye of GNOME 图像浏览程序 |
gthumb | V:4, I:17 | 5032 | 图像(Exif) | 图像浏览器(GNOME) |
geeqie | V:4, I:15 | 2256 | 图像(Exif) | 基于 GTK 的图像浏览器 |
shotwell | V:17, I:252 | 6263 | 图像(Exif) | 数码相片管理器(GNOME) |
gtkam | V:0, I:4 | 1154 | 图像(Exif) | 从数码照相机中检索多媒体数据的应用 (GTK) |
gphoto2 | V:0, I:8 | 947 | 图像(Exif) | gphoto2 软件是命令行方式的管理数码相机的工具 |
gwenview | V:33, I:105 | 11755 | 图像(Exif) | 图片浏览器(KDE) |
kamera | I:104 | 998 | 图像(Exif) | KDE 上的支持数码相机的应用软件 |
digikam | V:2, I:10 | 293 | 图像(Exif) | 用于 KDE 桌面环境的数字照片管理应用 |
exiv2 | V:2, I:27 | 275 | 图像(Exif) | EXIF/IPTC 元数据处理工具 |
exiftran | V:1, I:15 | 69 | 图像(Exif) | 改变数码照相机的 jpeg 图像格式 |
jhead | V:0, I:8 | 132 | 图像(Exif) | 处理兼容 JPEG 文件 (数码相机图片) 的 Exif 中的非图形部分 |
exif | V:2, I:41 | 339 | 图像(Exif) | 显示 JPEG 文件中的 EXIF 信息的命令行工具 |
exiftags | V:0, I:3 | 292 | 图像(Exif) | 从数码相机的 JPEG 文件读取 Exif 标签的实用工具 |
exifprobe | V:0, I:3 | 499 | 图像(Exif) | 从数码图片中读取元数据 |
dcraw | V:1, I:12 | 583 | image(原始的)→ppm | 解码原始的数码相机图片 |
findimagedupes | V:0, I:1 | 77 | image→fingerprint | 找到相似或重复的图像 |
ale | V:0, I:0 | 839 | image→image | 合并图像来增加保真度或者用于创建马赛克 |
imageindex | V:0, I:1 | 145 | image(Exif)→html | 从图形中创建静态 HTML 图库 |
outguess | V:0, I:1 | 230 | jpeg,png | 通用的 Steganographic 工具 |
librecad | V:1, I:15 | 8963 | DXF | CAD 数据编辑器(KDE) |
blender | V:3, I:27 | 84492 | blend, TIFF, VRML, … | 用于动画的 3D 编辑器 |
mm3d | V:0, I:0 | 3881 | ms3d, obj, dxf, … | 基于 OpenGL 的 3D 模型编辑器 |
open-font-design-toolkit | I:0 | 9 | ttf, ps, … | 用于开放字型设计的元包 |
fontforge | V:0, I:7 | 3980 | ttf, ps, … | 用于 PS,TrueType 和 OpenType 的字体编辑器 |
xgridfit | V:0, I:0 | 806 | ttf | 用于TrueType 字体的 网格拟合和小字还原技术 的程序 |
虽然像 gimp(1) 这样的图形界面程序是非常强大的,但像 imagemagick(1) 这样的命令行工具在用脚本自动化处理图像时是很有用的。
实际上的数码相机的图像是可交换的图像文件格式(EXIF),这种格式是在 JPEG 图像文件格式上添加一些元数据标签。它能够保存诸如日期、时间和相机设置的信息。
The Lempel-Ziv-Welch (LZW)无损数据压缩专利已经过期了。使用 LZW 压缩方式的 图形交互格式(GIF)工具现在可以在 Debian 系统上自由使用了。
七、不同的数据转换工具
这里有许多其他用于数据转换的工具。在 aptitude(8) 里用正则表达式 “~Guse::converting”” 来查找如下的软件包:
软件包 | 流行度 | 大小 | 关键词 | 说明 |
alien | V:1, I:20 | 163 | rpm/tgz→deb | 把外来的软件包转换为 Debian 软件包 |
freepwing | V:0, I:0 | 424 | EB→EPWING | 把 “电子书” (在日本流行) 变成单一的 JIS X 4081 格式 (EPWING V1 的子集) |
calibre | V:7, I:29 | 63180 | any→EPUB | 电子书转换器和库管理 |
通过如下的命令能够从 RPM 格式的包中提取数据:
$ rpm2cpio file.src.rpm | cpio --extract