免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 22138 | 回复: 8
打印 上一主题 下一主题

怎样在Shell中把utf8编码转成中文显示? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-02-21 14:13 |只看该作者 |倒序浏览
我在Bash中使用curl从某个api中获取到这样两个中文字符串的编码:
  1. \u9ED8\u8BA4
复制代码
我知道这两个编码代表”默认“,但不知道如何才能将它们转换成”默认“这两个中文字?

环境:cygwin
LANG=zh_CN.UTF8

论坛徽章:
11
技术图书徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
2 [报告]
发表于 2012-02-21 17:48 |只看该作者
目前shell不支持unicode转义的字符串,bash4.2 alpha支持
可行的办法就是做字符替换,给个Python的demo,面向行处理
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-

  3. import re
  4. import sys

  5. def main():

  6.     for line in sys.stdin:
  7.         sys.stdout.write(re.sub(r'\\u\w{4}',
  8.             lambda e: unichr(int(e.group(0)[2:], 16)).encode('utf-8'),
  9.             line))

  10. if __name__ == '__main__':
  11.     main()
复制代码
用法:
脚本保存为test.py,执行
sumomos-MacBook-Pro:py lgr$ echo '\u9ED8\u8BA4' | python ./test.py
默认

论坛徽章:
0
3 [报告]
发表于 2012-02-23 11:29 |只看该作者
本帖最后由 zrongzrong 于 2012-02-23 11:30 编辑

谢谢!

假如不用Python,有没有其他的Linux程序可以做转码这件事呢?

论坛徽章:
11
技术图书徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
4 [报告]
发表于 2012-02-23 15:13 |只看该作者
我是用python举个例子
任何一种编程语言都可以做

论坛徽章:
0
5 [报告]
发表于 2012-02-23 17:15 |只看该作者
我的意思是,有没有类似与iconv这种单一功能的程序来做这件事。如果用编程语言来做的话,有种杀鸡用牛刀的感觉。

论坛徽章:
11
技术图书徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
6 [报告]
发表于 2012-02-23 17:24 |只看该作者
都是几句代码完事,谈何杀鸡用牛刀?
传统工具对unicode很少有内置支持的,都需要适配一下,还没注意到一步到位的

论坛徽章:
0
7 [报告]
发表于 2012-02-23 17:51 |只看该作者
了解了,谢谢

论坛徽章:
0
8 [报告]
发表于 2012-02-27 22:49 |只看该作者
iconv是可以做编码转换的吧

论坛徽章:
0
9 [报告]
发表于 2015-05-21 20:26 |只看该作者
本帖最后由 xcxinghai 于 2015-05-21 20:30 编辑

echo "测试" |iconv -f utf-8 -t gbk










----------------------------------------------------
成长的企鹅---xinghaixu.com
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP