在字符集之间转换文本文件的最快,最简单的工具或方法是什么?
具体来说,我需要从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 …
我在编译后面的漏洞利用代码时遇到问题:
http://downloads.securityfocus.com/vulnerabilities/exploits/59846-1.c
我正在使用:"gcc file.c"和"gcc -O2 file.c",但它们都会出现以下错误:
sorbolinux-exec.c: In function ‘sc’:
sorbolinux-exec.c:76: error: stray ‘\302’ in program
sorbolinux-exec.c:76: error: stray ‘\244’ in program
sorbolinux-exec.c:76: error: ‘t’ undeclared (first use in this function)
sorbolinux-exec.c:76: error: (Each undeclared identifier is reported only once
sorbolinux-exec.c:76: error: for each function it appears in.)
Run Code Online (Sandbox Code Playgroud)
我尝试在Kali linux和Ubuntu 10.04上编译它们并得到相同的结果.
我正在用C++编写一个小程序,并遇到一个奇怪的错误:
src/Makefile/Tool.cpp:42:3: error: stray ‘\302’ in program
src/Makefile/Tool.cpp:42:3: error: stray ‘\240’ in program
Run Code Online (Sandbox Code Playgroud)
我正在用vim编写这个程序,相应的行(显示隐藏的字符)是:
>--->---std::vector<std::string> { "--debug" }$
Run Code Online (Sandbox Code Playgroud)
这个问题不是解决这个错误,因为我只需要复制该行并且错误原因消失.
似乎错误是由激活所有相关选项后甚至被vim隐藏的一些字符引起的!
问题是可能导致这些错误的原因.