将"\\u91cd\\u5e86\\u5730\\u4ea7\\uff0c"字串转化为它所表示的字串

oneBite77 2016-05-12 05:20:33
问题是出于在c#中调用百度的语音识别API,他返回的结果字串是这样的:
"\\u91cd\\u5e86\\u5730\\u4ea7\\uff0c",事实上,他就是utf-8编码的字符串。
运行语句如下语句可以知道他真实的字码:
string temp= "\u91cd\u5e86\u5730\u4ea7\uff0c";
Console.WriteLine(temp);

关键是在程序中,怎么去做这个转化。
我不知道我有没有说清楚意思,网络上传来的是\u91cd,用字符串表示是"\\u91cd",我应该怎么做,才能获得\u91cd utf8编码对应的字符? 求大神指导


...全文
1204 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
oneBite77 2016-05-13
  • 打赏
  • 举报
回复
你是说用System.Json‎命名空间下的json相关的类吗 == 我看到基本都是序列化json的,解析不会,,, 而且c#解析json需要导入第三方包的吧 像这个http://www.newtonsoft.com/json
xuzuning 2016-05-12
  • 打赏
  • 举报
回复
其实你可用 json 直接解码的
oneBite77 2016-05-12
  • 打赏
  • 举报
回复
谢谢,小白打开了新大陆。。。正则表达式
Poopaye 2016-05-12
  • 打赏
  • 举报
回复
string s = "\\u91cd\\u5e86\\u5730\\u4ea7\\uff0c";
string r = Regex.Replace(s, @"\\u([a-f0-9]{4})", m => ((char)ushort.Parse(m.Groups[1].Value, NumberStyles.HexNumber)).ToString());
Console.WriteLine(r);
oneBite77 2016-05-12
  • 打赏
  • 举报
回复
删去结果中的\,得到的结果是
  string a = "\\u91cd\\u5e86\\u7684\\u957f\\u5b89\\uff0c";
            a=a.Replace("\\", "");
            Console.WriteLine(a);
结果如下: u91cdu5e86u7684u957fu5b89uff0c 。。。好无力啊 有没有函数能将字串 "91cd5e867684957f5b89ff0c" 按照16进制,两个数字一组赋值给一个byte[]数组?
oneBite77 2016-05-12
  • 打赏
  • 举报
回复
要是没有的上述函数。。。 现在想到的办法就是将字符串删去转义符删去u,获得16进制的串,两个数字一组赋给byte数组,然后byte数组按照utf-8编码转化为字符串、、、

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧