http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 20253|回复: 14

[其他] usc2编码问题

[复制链接]
发表于 2015-9-7 11:14:02 | 显示全部楼层 |阅读模式
1金钱
在编辑框填入的是 \u7B2C01\u96C6
string temp = txtUrl.Text;
Console.WriteLine(Uri.UnescapeDataString("\u7B2C01\u96C6"));只有这个可以解码
Console.WriteLine(Uri.UnescapeDataString(temp));
Console.WriteLine(HttpUtility.UrlDecode(temp, Encoding.UTF8));

winfrom怎么可以获得变量解码结果呢


最佳答案

查看完整内容

return HttpUtility.UrlDecode(Regex.Unescape("\%u7B2C 01 \%u96C6"));


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2015-9-7 11:14:03 | 显示全部楼层
Homeless 发表于 2015-9-7 13:41
打算用js的方法实现 js的unescape这个似乎不错

return HttpUtility.UrlDecode(Regex.Unescape("\\u7B2C 01 \\u96C6"));
回复

使用道具 举报

发表于 2015-9-7 11:25:02 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2015-9-7 11:39:10 | 显示全部楼层
站长苏飞 发表于 2015-9-7 11:25
http://www.sufeinet.com/thread-1401-1-1.html

这个的可用率有点低
比如我写法的这个就无法解码出来
\u7B2C01\u96C6
这是第一集的意思
另外代码似乎是有错误的
outStr += (char)int.Parse(strlist, System.Globalization.NumberStyles.HexNumber);
这一行需要改动
回复

使用道具 举报

发表于 2015-9-7 11:40:30 | 显示全部楼层
好用不好用可以在线测试的http://tool.sufeinet.com/Code/ChineseUnicode.aspx
回复

使用道具 举报

发表于 2015-9-7 11:41:32 | 显示全部楼层
你上面的录入的本身就是错误的吧
回复

使用道具 举报

 楼主| 发表于 2015-9-7 11:44:29 | 显示全部楼层
站长苏飞 发表于 2015-9-7 11:40
好用不好用可以在线测试的http://tool.sufeinet.com/Code/ChineseUnicode.aspx

\u7B2C 01 \u96C6
第  01  集
中间的01非编码字符,所以这个解码的结果会有些不尽人意

http://tool.chinaz.com/Tools/Unicode.aspx
您可以试试这个,或者其他任何的解码工具看看效果
回复

使用道具 举报

发表于 2015-9-7 12:11:57 | 显示全部楼层
Homeless 发表于 2015-9-7 11:44
\u7B2C 01 \u96C6
第  01  集
中间的01非编码字符,所以这个解码的结果会有些不尽人意

这个完全可以自己处理掉 直接取位就行了。有空我改改方法,你可以先自己改下用着
回复

使用道具 举报

 楼主| 发表于 2015-9-7 13:41:16 | 显示全部楼层
站长苏飞 发表于 2015-9-7 12:11
这个完全可以自己处理掉 直接取位就行了。有空我改改方法,你可以先自己改下用着

打算用js的方法实现 js的unescape这个似乎不错
回复

使用道具 举报

发表于 2015-9-7 13:59:56 | 显示全部楼层
[C#] 纯文本查看 复制代码
       /// Unicode字符转汉字. 
        /// 默认处理 \u7384\u673a\u8bba\u575b 
        /// 如果遇到 &7384 &673a &8bba &575b  请对SplitString赋值为&
        /// </summary>
        /// <param name="str">原始字符串</param>
        /// <param name="SplitString">默认为u</param>
        /// <returns></returns>
        public string UnicodeString(string str, string SplitString = "u")
        {
            //最直接的方法Regex.Unescape(str);
            StringBuilder strResult = new StringBuilder();
            if (!string.IsNullOrEmpty(str))
            {
                string[] strlist = str.Replace("\\", "").Split(new string[] { SplitString }, StringSplitOptions.RemoveEmptyEntries);

                for (int i = 0; i < strlist.Length; i++)
                {
                    try
                    {
                        int charCode = Convert.ToInt32(strlist[i], 16);
                        strResult.Append((char)charCode);
                    }
                    catch (Exception)
                    {

                        continue; //跳过转换失败的字符
                    }

                }
            }
          

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-24 02:27

© 2014-2021

快速回复 返回顶部 返回列表