linux unicode utf8.h,linux shell下16进制 “\uxxxx” unicode to UTF-8中文

本文探讨了在项目中通过新浪IP查询接口获取城市信息时,如何从JSON的'深圳'编码转换为中文‘深圳’,涉及iconv工具的局限性,并分享了解决方案,包括使用uni2ascii包和十六进制转换方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题出现背景:

项目中有个通过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.youkuaiyun.com/download/oshuyu/9999900

2、然后可以使用ascii2uni命名转换

# echo '\u6df1\u5733' | ascii2uni -a U -q

# 深圳

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 ...

Qt实现16进制unicode转utf-8以及国际音标编码问题

由于项目需要,需要对网络资源进行解码.遇到编码问题.研究了下基本编码原理.于是有了下面两个通用代码 1. 16进制unicode转换为utf-8中文显示 QString unicodeToUtf_8( ...

carryLess小笔记001_Java中16进制与字符串之间的相互转换

笔者前几日在开服过程中需要将字符串转化成为16进制的字符串,在网上找到了一些方法尝试之后,均发现存在一个问题-->字符串转为16进制后再转回来,英文正常,中文出现乱码 经过考虑决定通过以下方式进 ...

Java中16进制与字符串之间的相互转换

笔者前几日在开服过程中需要将字符串转化成为16进制的字符串,在网上找到了一些方法尝试之后,均发现存在一个问题-->字符串转为16进制后再转回来,英文正常,中文出现乱码 经过考虑决定通过以下方式进 ...

随机推荐

C++处理Json串——jsoncpp库

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,和xml类似,本文主要对VS2008中使用Jsoncpp解析json的方法做一下记录.Jsoncpp是个跨 ...

python之函数

本节主要内容: 1. 上节遗留的内置函数: callable(), chr(),ord(), compile(), eval(),exec(), divmod(), isinstance() ,fil ...

tomcat跨域请求

tomcat A请求tomcat B中的数据(本人是在同一台机器上2个tomcat端口不同,在不同机器上有时间会测得) 博主用的是ajax请求 在A 请求B中数据,用下面的方法可以 在被请求的tomc ...

BeanFactory vs ApplicationContext

jquery datatable 参数

DataTables(http://www.datatables.net/)应该是我到目前为止见过的,功能最强大的表格解决方案(当然,不计算其它整套框架中的table控件在内). 先把它主页上写的特性 ...

HTML5——将图片拖拽上传

如下图所示: 代码如下:

...

JS的一些常见验证代码

1//檢查空串  2function isEmpty(str){  3 if((str == null)||(str.length == 0)) return (true);  4 else retu ...

Robotium第一天:搭建环境测试微信

因为要在命令行下运行一些android的工具,所以配置一些环境变量会比较方便: 遇到问题: java -jar re-sign.jar 出现提示android路径没有配置好: 需要配置如下: 配置AN ...

eclipse中安装配置maven

1.首先说一下在windows中安装maven.非常简单... 到http://maven.apache.org/download.html中下载maven,截止笔者发文时,maven最新版本为mav ...

【kafka】Java连接出现Connection refused: no further information的解决方法

在Linux机器(ip:10.102.16.203)安装完kafka(参考:kafka的安装及使用),在windows上使用Java接口访问服务时(参考:Java实现Kafka的生产者.消费者),报异 ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值