Shell 的 iconv 命令无法转换带有半角空格的文本,请问原因是?解决方法又是?

发布于 2022-09-01 07:24:49 字数 512 浏览 15 评论 0

我分别使用 Cygwin 和 Cmd 来转换回显的内容,代码如下:

其一

echo 呵 呵|iconv -f utf-8 -t gbk ::为 Cmd 版本

回显为:

iconv: (stdin):1:0: cannot convert

其二

echo 呵 呵|iconv -f gbk -t utf-8 #为 Cygwin 版本

回显为:

鍛
iconv: (标准输入):1:2: 无法转换

可能有人会觉着以上的语句用处不大,但我确实有实际用途。主要是用于将一些程序发送到标准输出的内容进行转码,并处理。而这些程序内部是没有办法进行转码的,所以才需要通过标准输出来转码。

还请问:

  • 造成这种情况的原因是什么?
  • 这种情况应该如何解决?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

墨洒年华 2022-09-08 07:24:49

cmd默认是gbk编码,cygwin默认是utf-8编码,看你的例子好像反了。
在cygwin里转换没有任何问题

$ echo 呵 呵|iconv -f utf-8 -t gbk
▒▒ ▒▒
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文