C# Unicode转义(\uXXXX)解码
2015-07-02 15:05
295 查看
static Regex reUnicode = new Regex(@"\\u([0-9a-fA-F]{4})", RegexOptions.Compiled); public static string Decode(string s) { return reUnicode.Replace(s, m => { short c; if (short.TryParse(m.Groups[1].Value, System.Globalization.NumberStyles.HexNumber, CultureInfo.InvariantCulture, out c)) { return "" + (char)c; } return m.Value; }); }
正则和js中的一样, 将
XXXX转换以16进制
System.Globalization.NumberStyles.HexNumber解析为
short类型,
然后直接
(char)c就能转换成对应的字符,
"" + (char)c用于转换成字符串类型返回.
由于正则中也有
\uXXXX,
所以需要写成
\\uXXXX来表示匹配字符串
\uXXXX,
而不是具体的字符.
上面使用到了Lambda, 需要至少dotnet 4的SDK才能编译通过, 可以在dotnet 2下运行.
相关文章推荐
- 浅析EF涉及的一些C#语言特性
- C# new的用法
- C#获取视频文件的播放时间
- C# 发送电子邮件(含附件)用到的类 system.web.mail
- 在C#主线程和子线程将数据传递给对方如何实现
- C# 概念记忆
- C# 关闭显示器(显示)
- C# Message.msg
- C# Generic(转载)
- [c#][福利]BTTool种子文件修改工具
- C# 你不能调用的问题剪贴板线程
- C#内存释放
- C#软件winform程序安装包制作及卸载程序制作
- c#中跨线程调用windows窗体控件 .我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题。然而我们并不能用传统方法来做这个问题,下面我将详细的介绍。
- c#中如何跨线程调用windows窗体控件?
- C#操作Word (2)-- 打开&关闭Word文档
- C#课程设计---猜猜看
- C#RAS加密算法
- c#语言
- C#中实现 子窗体控制调用父窗体成员和控件