我分别使用 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: 无法转换
可能有人会觉着以上的语句用处不大,但我确实有实际用途。主要是用于将一些程序发送到标准输出的内容进行转码,并处理。而这些程序内部是没有办法进行转码的,所以才需要通过标准输出来转码。
还请问:
- 造成这种情况的原因是什么?
- 这种情况应该如何解决?
cmd默认是gbk编码,cygwin默认是utf-8编码,看你的例子好像反了。
在cygwin里转换没有任何问题