C#编程总结(十)字符转码 - oop.com.cn_面向对象设计网站 - 面向对象技术开发

面向对象技术开发

会员投稿 投稿指南 站长资讯通告:
您的位置: 首页 > OOP语言 > C# > 正文

C#编程总结(十)字符转码

来源: www.bianceng.cn 阅读:

为了适应某种特殊需要,字符需要根据规则进行转码,便于传输、展现以及其他操作等。

看看下面的转码,就知道他的用处了。

1、字符串转码

根据原编码格式与目标编码格式,完成转换。不过可能出现乱码哦。上一章已经介绍过了。

代码:

/// <summary>
        /// 字符串编码转换
        /// </summary>
        /// <param name="srcEncoding">原编码</param>
        /// <param name="dstEncoding">目标编码</param>
        /// <param name="srcBytes">原字符串</param>
        /// <returns>字符串</returns>
        public static string TransferEncoding(Encoding srcEncoding, Encoding dstEncoding, string srcStr)
        {
            byte[] srcBytes = srcEncoding.GetBytes(srcStr);
            byte[] bytes = Encoding.Convert(srcEncoding, dstEncoding, srcBytes);
            return dstEncoding.GetString(bytes);
        }

测试用例:

input = "欢迎来到转码世界!";
result = Transfer.TransferEncoding(Encoding.Default, Encoding.UTF8, input);//欢迎来到转码世

界!
Console.WriteLine("TransferEncoding 结果:{0}",result);
result = Transfer.TransferEncoding(Encoding.UTF8,Encoding.Default,result);
Console.WriteLine("TransferEncoding 反转码结果:{0}", result);//欢迎来到转码世界

!

2、Html转码

要点:将字符 < 和 > 在嵌入到文本块中时被编码为 &lt; 和 &gt;

如果在 HTTP 流中传递空白和标点之类的字符,则它们在接收端可能会被错误地解释。 HTML 编码将 HTML 中不允许使用的字符转换为等效字符实体;HTML 解码会反转此编码过程。 例如,为进行 HTTP 传 输,字符 < 和 > 在嵌入到文本块中时被编码为 &lt; 和 &gt;。要编码或解码 Web 应 用程序之外的值,请使用 WebUtility 类。

转码:

/// <summary>
        /// html转码
        /// </summary>
        /// <param name="html"></param>
        /// <returns></returns>
        public static string HtmlEncode(string html)
        {
            return HttpUtility.HtmlEncode(html);//System.Net.WebUtility.HtmlEncode(html);   

         
        }

解码:

/// <summary>
        /// html解码
        /// </summary>
        /// <param name="html"></param>
        /// <returns></returns>
        public static string HtmlDecode(string html)
        {
            return HttpUtility.HtmlDecode(html);//System.Net.WebUtility.HtmlDecode(html);  
        }

Tags:
相关文章列表: