更改文本文件中的字符编码

更改文本文件中的字符编码

有没有办法更改文本文件的字符编码?如果可以,该怎么做?

瞧,我正在使用键盘快捷键调用 shell 命令,该命令本身用于xclip将文件内容复制到剪贴板。然后我可以使用CTRL+V粘贴内容。我这样做是为了在需要时将签名添加到电子邮件中。

这是脚本:

#!/bin/sh
# Need to install xclip
cat ~/personal/mail-signature.txt | xclip -i -selection clipboard

一切似乎都正常工作,即使在电子邮件撰写窗口中也是如此。但是,发送消息时,回车符(换行符)似乎与文件相比增加了一倍。也就是说,无论我使用什么来gedit添加新行(ENTERSHIFT+ENTERCTRL+ ENTER),都会变成这样:

+-------------------------++------------------------+
My name and address.                      Affiliation
fax:   +1 (5555) 555-5555      Address in this planet
[email protected]    http://www.someaddress.ca/
+-------------------------++------------------------+

进入这个

+-------------------------++------------------------+

My name and address.                      Affiliation

fax:   +1 (5555) 555-5555      Address in this planet

[email protected]    http://www.someaddress.ca/

+-------------------------++------------------------+

一旦消息被发送。

gedit当我打开签名文件并在电子邮件客户端的窗口上使用CTRL+CCTRL+时似乎不会发生这种情况。V

我猜测这一定是读取/解释行尾/换行符的方式xclip,但由于某种原因,客户端的编辑窗口没有显示差异,而服务器(在本例中为 Gmail 的 smtp 服务器)似乎看到了行尾字符之间的差异。

我使用 Ubuntu 16.04 和 Thunderbird 45.3.0 作为电子邮件客户端。

更新:刚刚尝试了xclip选项-noutf8但也没有用。

答案1

虽然这不是答案,更像是一种解决方法,但 michael_n 提供了一种解决方法:将签名文件放入dos2unix过滤器。这解决了问题,但我提出了一个更大的问题:为什么默认字符编码是geditDOS 编码?可能出于兼容性原因。

无论如何,感谢 michael_n。

相关内容