EncodingHelper
/// <summary>
/// Url解码
/// </summary>
/// <param name="str">原始字符串</param>
/// <param name="isuft8">是否utf8</param>
/// <returns></returns>
public static string Url2Str_(string Url, bool IsUTF8 = false)
{
string result = string.Empty;
int len = Url.Length;
;
int H, L;
string Hex = "0123456789ABCDEF";
List<byte> li = new List<byte>();
while (i < len)
{
) != "%")
{
li.Add(Convert.ToByte(Url.Substring(i, )));
}
else
{
i++;
H = Hex.IndexOf(Url.Substring(i, ).ToUpper());
i++;
L = Hex.IndexOf(Url.Substring(i, ).ToUpper());
li.Add(( + L));
}
i++;
}
if (IsUTF8 == true)
{
result = Encoding.UTF8.GetString(li.ToArray());
}
else
{
result = Encoding.Default.GetString(li.ToArray());
}
return result;
}
/// <summary>
/// Url编码
/// </summary>
/// <param name="str">原始字符串</param>
/// <param name="isuft8">是否utf8</param>
/// <returns></returns>
public static string Str2Url_(string strCode, bool NoEncodNum = false, bool isuft8 = false)
{
StringBuilder sb = new StringBuilder();
byte[] byStr;
if (isuft8 == false)
{
byStr = System.Text.Encoding.Default.GetBytes(strCode);
}
else
{
byStr = System.Text.Encoding.UTF8.GetBytes(strCode);
}
System.Text.RegularExpressions.Regex regKey = new System.Text.RegularExpressions.Regex("^[A-Za-z0-9]+$");
; i < byStr.Length; i++)
{
string strBy = Convert.ToChar(byStr[i]).ToString();
if (NoEncodNum == true)
{
if (regKey.IsMatch(strBy))
{
//是字母或者数字则不进行转换
sb.Append(strBy);
}
else
{
sb.Append());
}
}
else
{
sb.Append());
}
}
return (sb.ToString());
}
/// <summary>
/// Url编码,encoding默认为utf8编码
/// </summary>
/// <param name="str">需要编码的字符串</param>
/// <param name="encoding">指定编码类型</param>
/// <returns>编码后的字符串</returns>
public static string Str2Url(string str, Encoding encoding = null)
{
if (encoding == null)
{
return System.Web.HttpUtility.UrlEncode(str, Encoding.UTF8);
}
else
{
return System.Web.HttpUtility.UrlEncode(str, encoding);
}
}
/// <summary>
/// Url解码,encoding默认为utf8编码
/// </summary>
/// <param name="str">需要解码的字符串</param>
/// <param name="encoding">指定解码类型</param>
/// <returns>解码后的字符串</returns>
public static string Url2Str(string str, Encoding encoding = null)
{
if (encoding == null)
{
return System.Web.HttpUtility.UrlDecode(str, Encoding.UTF8);
}
else
{
return System.Web.HttpUtility.UrlDecode(str, encoding);
}
}
/// <summary>
///_usc2到ansi
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public static string Unicode2StringEX(string str)
{
return HttpUtility.UrlDecode(Regex.Unescape(str));
}
/// <summary>
/// 到ansi到usc2
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string Str2Unicode(string str)
{
return HttpUtility.UrlEncodeUnicode(str);
}
/// <summary>
/// UTF8到GB2312
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string UTF82Str(string str)
{
string result = str;
byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(str);
result = System.Text.Encoding.Default.GetString(byteArray, , byteArray.Length);
return result;
}
/// <summary>
/// GB2312到UTF8
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string Str2UTF8(string str)
{
string result = str;
byte[] byteArray = System.Text.Encoding.Default.GetBytes(str);
result = System.Text.Encoding.UTF8.GetString(byteArray, , byteArray.Length);
return result;
}
/// <summary>
/// 将字符串转换为base64格式 默认UTF8编码
/// </summary>
/// <param name="str">原始字符串</param>
/// <param name="encoding">编码</param>
/// <returns></returns>
public static string String2Base64(string str, Encoding encoding = null)
{
if (encoding == null)
{
encoding = Encoding.UTF8;
}
return Convert.ToBase64String(encoding.GetBytes(str));
}
/// <summary>
/// base64字符串转换为普通格式 默认UTF8编码
/// </summary>
/// <param name="str">原始字符串</param>
/// <param name="encoding">编码</param>
/// <returns></returns>
public static string Base642String(string str, Encoding encoding = null)
{
if (encoding == null)
{
encoding = Encoding.UTF8;
}
byte[] buffer = Convert.FromBase64String(str);
return encoding.GetString(buffer);
}
EncodingHelper的更多相关文章
- sublime text 插件(前端自用)
一.软件安装 ST中文论坛:http://sublimetext.iaixue.com/ 或者 http://sublimetext.iaixue.com/dl/#sublime_text_3103 ...
- Sublime Text3快捷键以及常用插件
工若善其事,必先利其器.做为一个web前端开发人员,必须有一个得心应手的编码工具,本人推荐Sublime Text3和WebStorm,但WebStorm太过智能和耗性能了对初学者来说弊大于利,所以我 ...
- JS&CSS文件请求合并及压缩处理研究(五)
接上篇.在我们最终调用 @Html.RenderResFile(ResourceType.Script) 或者 @Html.RenderResFile(ResourceType.StyleSheet) ...
- Sublime Text 最佳插件列表(转)
Package Control 安装方法 首先通过快捷键 ctrl+` 或者 View > Show Console 打开控制台,然后粘贴相应的 Python 安装代码. Sublime Tex ...
- C# 根据IP地址获取城市
using System; using System.IO; using System.Net; using System.Text; using System.Web.Script.Serializ ...
- 推荐!Sublime Text 最佳插件列表
本文由 伯乐在线 - 艾凌风 翻译,黄利民 校稿.英文出处:ipestov.com.欢迎加入翻译组. 本文收录了作者辛苦收集的Sublime Text最佳插件,很全. 最佳的Sublime Text ...
- Sublime Text各种插件使用方法
有快捷键冲突的时候可以修改快捷键,建议修改插件快捷键而不是Sublime Text的快捷键,我的有冲突的一律将插件快捷键设置成:Ctrl+Alt+A(B...) Package Control 通俗易 ...
- 检测字节流是否是UTF8编码
几天前偶尔看到有人发帖子问“如何自动识别判断url中的中文参数是GB2312还是Utf-8编码” 也拜读了wcwtitxu使用巨牛的正则表达式检测UTF8编码的算法. 使用无数或条件的正则表达式用起来 ...
- c# 搭建服务端 常用的Helper(5)
常用的Helper 1.byteHelper :对象与byte[]之间的转换 2.ConvertJson:操作json对象 3.EncodingHelper:对象编码 4.ModelConvertHe ...
随机推荐
- 【视频处理】YUV与RGB格式转换
YUV格式具有亮度信息和色彩信息分离的特点,但大多数图像处理操作都是基于RGB格式. 因此当要对图像进行后期处理显示时,需要把YUV格式转换成RGB格式. RGB与YUV的变换公式如下: YUV(25 ...
- 从网上找的 visual studio 的各个版本下载地址,vs2010/vs2012/vs2013带注册码
从网上找的 visual studio 的各个版本下载地址,很全,从 6.0 一直 到 vs2013,要的拿去吧... Microsoft Visual Studio 6.0 下载:英文版360云盘下 ...
- MySQL大数据优化
我们考虑的情况是在你的数据量很大的情况下,千万级别的数据量.不要当我们的请求响应时间已经让我无法忍受的时候,再来想起来优化,可能有点迟了.因为可能会丢失很多潜在的价值客户.所以,在我们当初设计表,或者 ...
- 时光倒流程序设计-AlloyTicker
熵与负熵 熵遵循熵增原理,即无序非热能与热能之间的转换具有方向性.薛定谔说过:生命本质在于负熵.熵代表的是无序,负熵就是熵的对立,而负熵表示的则是有序.汲取负熵(米饭.面包.牛奶.鸡蛋),可以简单的理 ...
- 原生JS实战:写了个一边玩游戏,一边记JS的API的游戏
本文是苏福的原创文章,转载请注明出处:苏福CNblog:http://www.cnblogs.com/susufufu/p/5878913.html 本程序[一边玩游戏,一边记JS的API]是本人的个 ...
- CartO
Carto documentation The following is a list of properties provided in CartoCSS that you can apply to ...
- Android 如何有效的解决内存泄漏的问题
前言:最近在研究Handler的知识,其中涉及到一个问题,如何避免Handler带来的内存溢出问题.在网上找了很多资料,有很多都是互相抄的,没有实际的作用. 本文的内存泄漏检测工具是:LeakCana ...
- Android界面架构(Activity,PhoneWiondow,DecorView)简介
在一个Android应用程序中,用户界面通过View和ViewGroup对象构建.所有View的子类成为"Widget",所有ViewGroup的子类成为"Layout& ...
- 开启基本数据结构和算法之路--初识Graphviz
在我的Linux刀耕开荒阶段,就想开始重拾C,利用C实现常用的基本数据结构和算法,而数据结构和算法的掌握的熟练程度正是程序的初学者与职业程序员的分水岭. 那么怎么开启这一段历程呢? 按照软件工程的思想 ...
- 解决安装rpm包依赖关系的烦恼 - yum工具介绍及本地源配置方法
版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...