没有BOM的 UTF-8和UTF-8有什么不同?哪个更好?
在字符集之间转换文本文件的最快,最简单的工具或方法是什么?
具体来说,我需要从UTF-8转换为ISO-8859-15,反之亦然.
一切顺利:您最喜欢的脚本语言的单行,命令行工具或OS,网站等的其他实用程序.
在Linux/UNIX/OS X/cygwin上:
Troels Arvin建议的Gnu iconv最适合用作过滤器.它似乎普遍可用.例:
$ iconv -f UTF-8 -t ISO-8859-15 in.txt > out.txt
Run Code Online (Sandbox Code Playgroud)
由Cheekysoft建议的Gnu 重新编码(手动)将就地转换一个或多个文件.例:
$ recode UTF8..ISO-8859-15 in.txt
Run Code Online (Sandbox Code Playgroud)
这个使用较短的别名:
$ recode utf8..l9 in.txt
Run Code Online (Sandbox Code Playgroud)
Recode还支持可用于在不同行结束类型和编码之间进行转换的曲面:
将换行符从LF(Unix)转换为CR-LF(DOS):
$ recode ../CR-LF in.txt
Run Code Online (Sandbox Code Playgroud)
Base64编码文件:
$ recode ../Base64 in.txt
Run Code Online (Sandbox Code Playgroud)
你也可以将它们结合起来.
将带有Unix行尾的Base64编码的UTF8文件转换为带有Dos行结尾的Base64编码的Latin 1文件:
$ recode utf8/Base64..l1/CR-LF/Base64 file.txt
Run Code Online (Sandbox Code Playgroud)在带有Powershell的 Windows上(Jay Bazuzi):
PS C:\> gc -en utf8 …
x=$(find . -name "*.txt")
echo $x
Run Code Online (Sandbox Code Playgroud)
如果我在Bash shell中运行上面的代码,我得到的是一个包含多个文件名的字符串,用空格分隔,而不是列表.
当然,我可以进一步将它们分开来获取列表,但我确信有更好的方法可以做到这一点.
那么循环find执行命令结果的最佳方法是什么?
经过Google的一些搜索后,我想出的是:
find my_folder -type f -exec grep -l "needle text" {} \; -exec file {} \; | grep text
Run Code Online (Sandbox Code Playgroud)
这是非常不方便的,并输出不需要的文本,如mime类型信息.更好的解决方案?我在同一个文件夹中有很多图像和其他二进制文件,我需要搜索大量文本文件.
我在一个目录中有50到60个文件,我需要定期连接到一个文件中.
我想过使用notepad ++认为可能有一个插件可以帮助但却找不到它.
还有其他想法吗?
我有一个带有BOM的UTF-8编码文件,想要删除BOM.是否有任何linux命令行工具从文件中删除BOM?
$ file test.xml
test.xml: XML 1.0 document, UTF-8 Unicode (with BOM) text, with very long lines
Run Code Online (Sandbox Code Playgroud) 是否有任何程序可以通过编程方式将文件编码更改为UTF-8.我有1000个文件,我想在linux中以UTF-8格式保存它们.
谢谢.