linux shell下16进制 “\uxxxx” unicode to UTF-8中文
问题出现背景:
项目中有个通过ip获取归属地城市需求,我是直接通过新浪的ip归属查询接口来获取的。我使用的是shell脚本调用
RESULT=$(curl -s 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=119.137.53.145')
返回json格式的值:
var remote_ip_info = {"ret":1,"start":-1,"end":-1,"country":"\u4e2d\u56fd","province":"\u5e7f\u4e1c",
"city":"\u6df1\u5733","district":"","isp":"","type":"","desc":""};
我使用awk截取到city的是为"\u6df1\u5733"的16进制的unicode编码。
但是在把"\u6df1\u5733"转为中文的时候遇见了麻烦,百度上搜索到的方法是用iconv来转换成utf-8中文,但是这些方法都没有效果。
可能iconv 只是把字符转成其他字符集的字符,而"\u6df1\u5733"是中文"深圳"在unicode的汉字16进制编码表中的位置,
所以要使用iconv要转换的话,需要先把"\u6df1\u5733"解码成汉字"深圳",然后再转换成其他utf-8、gbk、gb2312等编码方式。
iconv好像没有解码这个功能。
解决方案:
花了大量时间后在stack voerflow网站上找到了解决方法。
1、安装一个uni2ascii-4.15-1.el6.rf.x86_64.rpm
下载地址:http://download.csdn.net/download/oshuyu/9999900
2、然后可以使用ascii2uni命名转换
# echo '\u6df1\u5733' |ascii2uni -a U -q
# 深圳
linux shell下16进制 “\uxxxx” unicode to UTF-8中文的更多相关文章
- Linux Shell产生16进制随机数
n为字符长度 openssl rand -hex n
- Linux GPT分区表16进制实例分析
Linux GPT分区表16进制实例分析 GPT分区表随着win10的普及,已经在越来越多的新电脑上开始使用了.前段时间的新闻有看到说Intel会在后面的新平台中完全取消CSM支持,这也大概相当于后面 ...
- 太有用了,所以转:Delphi下16进制位图数据转位图
如果我们在Form中拖入一个Image控件,并设置好picture后,Alt+F12就可以看到Form的源代码中已经将图片转成了16进制字符串,如下: object Image1: TImage Le ...
- Delphi下16进制位图数据转位图
如果我们在Form中拖入一个Image控件,并设置好picture后,Alt+F12就可以看到Form的源代码中已经将图片转成了16进制字符串,如下: ? 1 2 3 4 5 6 7 8 9 10 1 ...
- C#下16进制和BCD码转换代码
private static Byte[] ConvertFrom(string strTemp) { try { if (Convert.ToBoolean(strTemp.Length & ...
- Java 16进制、unicode互转
package service; import java.util.regex.Matcher; import java.util.regex.Pattern; public class CodeCh ...
- 华为交换机Stelnet ssh/rsa验证模式下16进制公钥生成方法
1.生成秘钥 需要在你自己电脑上生成 执行下面命令,默认生成位置是~/.ssh ssh-keygen -t rsa -b 1024 -f yourkeyname -C "备注" 参 ...
- Qt实现16进制unicode转utf-8以及国际音标编码问题
由于项目需要,需要对网络资源进行解码.遇到编码问题.研究了下基本编码原理.于是有了下面两个通用代码 1. 16进制unicode转换为utf-8中文显示 QString unicodeToUtf_8( ...
- carryLess小笔记001_Java中16进制与字符串之间的相互转换
笔者前几日在开服过程中需要将字符串转化成为16进制的字符串,在网上找到了一些方法尝试之后,均发现存在一个问题-->字符串转为16进制后再转回来,英文正常,中文出现乱码 经过考虑决定通过以下方式进 ...
随机推荐
- 将Django部署到Linux
https://cloud.tencent.com/developer/labs/lab/10372
- git https 请求报错 504
git https 请求报错 504 原因可能是因为设置了代理,ubuntu/deepin 系统可以检查 /etc/profile ~/.bashrc 内有没有设置 https 的代理. 有的话,去掉 ...
- Quartz 定时器任务调度配置(以及如何配置quartz启动执行一次)
1. 添加maven依赖.pom.xml 中添加jar文件 <!-- 作业任务调度机制 --> <dependency> <groupId>org.quartz-s ...
- JS实现网站内容的禁止复制和粘贴、另存为
1.使右键和复制失效方法1:在网页中加入以下代码: <script language="Javascript"> document.oncontextmenu=new ...
- [Vuex] Lazy Load a Vuex Module at Runtime using TypeScript
Sometimes we need to create modules at runtime, for example depending on a condition. We could even ...
- echarts中tooltip提示框位置控制
关键代码: position: function(point, params, dom, rect, size) { //其中point为当前鼠标的位置,size中有两个属性:viewSize和con ...
- GoAccess日志分析工具
1.1 GoAccess简介 GoAccess是一个非常良心的开源软件,它的良心之处体现在如下方面: 1)安装简单: 2)操作容易: 3)界面酷炫: GoAccess 官网 https://goacc ...
- ArcGIS鼠标滚轮方向之代码篇
Desktop10.X有多个版本,不同版本的注册表路径不一致,注册表中可能残留多个版本的注册信息:也可能没有Desktop,而是Engine.其实可以通过RuntimeManager.ActiveRu ...
- Object 标签遮挡 Div 显示
最近在使用 Object 时,就是播放视频的 Object 标签遮挡住其他 div 标签,不能正常显示. 出现这种现象的原因: object 标签不在 dom 文档流里面,浏览器在解析的时候先把 ob ...
- 面试汇总——说一下CSS盒模型
本文是面试汇总分支——说一下CSS盒模型. 基本概念:W3C标准盒模型和IE盒模型 CSS如何设置这两种模型 JS如何获取盒模型对应的宽和高 根据盒模型解释边距重叠 BFC(边距重叠解决方案) 一. ...