macOS下使用iconv命令转换文件编码时遇参数无效错误求助
macOS下iconv报错"iconv_open(, -t): Invalid argument"的解决办法
错误原因
这个错误是因为你未指定源文件的编码格式,iconv无法确定要从哪种编码转换到UTF-8,导致参数不合法。错误提示里的“转换字符串时出错:从 转换到UTF-8”也能看出来,源编码的位置是空的。
正确命令格式
必须通过-f参数明确指定源编码,完整命令格式如下:
iconv -f <源编码> -t UTF-8 <输入文件名> -o <输出文件名>
示例
如果你的源文件是GBK编码,执行以下命令转换:
iconv -f GBK -t UTF-8 input.txt -o output_utf8.txt
如何查看源文件编码
如果不确定源文件的编码,用macOS自带的file命令查询:
file -I <文件名>
输出结果中charset=后面的内容就是该文件的编码,比如:test.txt: text/plain; charset=iso-8859-1
额外注意
- 可以用
iconv -l命令查看macOS的iconv支持的所有编码列表,确保你指定的源编码在其中 - 不要省略
-f参数,这是触发该错误的核心原因
内容的提问来源于stack exchange,提问作者Deepak Reddy
相关产品推荐
相关产品推荐

