有没有办法更改文本文件的字符编码?如果可以,该怎么做?
瞧,我正在使用键盘快捷键调用 shell 命令,该命令本身用于xclip
将文件内容复制到剪贴板。然后我可以使用CTRL+V粘贴内容。我这样做是为了在需要时将签名添加到电子邮件中。
这是脚本:
#!/bin/sh
# Need to install xclip
cat ~/personal/mail-signature.txt | xclip -i -selection clipboard
一切似乎都正常工作,即使在电子邮件撰写窗口中也是如此。但是,发送消息时,回车符(换行符)似乎与文件相比增加了一倍。也就是说,无论我使用什么来gedit
添加新行(ENTER、SHIFT+ENTER或CTRL+ 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+C和CTRL+时似乎不会发生这种情况。V
我猜测这一定是读取/解释行尾/换行符的方式xclip
,但由于某种原因,客户端的编辑窗口没有显示差异,而服务器(在本例中为 Gmail 的 smtp 服务器)似乎看到了行尾字符之间的差异。
我使用 Ubuntu 16.04 和 Thunderbird 45.3.0 作为电子邮件客户端。
更新:刚刚尝试了xclip
选项-noutf8
但也没有用。
答案1
虽然这不是答案,更像是一种解决方法,但 michael_n 提供了一种解决方法:将签名文件放入dos2unix
过滤器。这解决了问题,但我提出了一个更大的问题:为什么默认字符编码是gedit
DOS 编码?可能出于兼容性原因。
无论如何,感谢 michael_n。