You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bash中执行经UTF-16LE转码的脚本字符串并正常运行

问题原因

你写的命令执行顺序错误:eval 捥潨吠卅⅔|iconv -tUCS2会先把未转码的乱码字符串直接传给eval执行,执行失败后的输出才会传给iconv转码,自然达不到预期。你需要先完成转码得到正常的命令字符串,再交给eval执行。

正确写法

使用命令替换先执行转码逻辑,将转码后的结果作为eval的入参即可:

eval "$(echo 捥潨吠卅⅔|iconv -tUCS2)"

如果是为了代码高尔夫压缩字符数,可以去掉双引号和多余空格,精简为:

eval $(echo 捥潨吠卅⅔|iconv -tUCS2)

补充说明

如果转码后的命令包含空格、通配符等特殊字符,保留双引号包裹命令替换的结果,可以避免shell提前拆分字符串导致的执行异常。

内容的提问来源于stack exchange,提问作者Inigoo Montoyaa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 08:06:02