[C#/asp.net]字符串编码、解码以及编码转换

C# 字符编码与解码(Encoder and Decoder) C# Encoder 与 Decoder的例子,详细注释。 Encoder Decoder 编码 解码 C# Encoder Decoder 编码 解码 C# Encoder Decoder 编码 解码 C# Encoder Decoder 编码 解码 C# 立即下载

在项目开发中不少朋友都会遇到字符串编码、解码或者编码转换的问题。

为了方便初学者朋友,我就在这里抛砖引玉地讲解一下吧。

在C#中我们一般使用System.Text.Encoding来处理字符串编码的问题。

1、字符串解码
string code = "00430023662f4e0095e85f884f1896c576848bed8a00";
有这么一段代码,我们如何把它转换成可识别的中文呢?
有经验或对各种编码比较熟悉的朋友可能直接就可以看出来,但是我们在不知道编码的情况下如何快速把该编码转换为汉字呢?
string text = Encoding.UTF8.GetString(byte[] bytes);
在知道这是UTF8编码的情况下我们可以通过GetString来进行解码。
不知道编码其实我们可以通过遍历的方式来穷举一下就可以了:
            string sources = "C#是一门很优雅的语言";
            string code = "00430023662f4e0095e85f884f1896c576848bed8a00";
            foreach (var encoding in Encoding.GetEncodings())
            {
                string temp_code = string.Concat(encoding.GetEncoding().GetBytes(sources).Select(item => item.ToString("x").PadLeft(2, '0')));
                if (temp_code == code)
                {
                    Console.WriteLine(temp_code);
                    Console.WriteLine(encoding.Name);
                }
            }
如果没有sources字符串,只有code编码的时候也可以遍历所有encoding,看看什么encoding可以输出正常的中文即可。

或者在直接知道编码的情况下:
            string code = "00430023662f4e0095e85f884f1896c576848bed8a00";
            byte[] buffer = Regex.Matches(code, "[0-9a-fA-F]{2}").Cast<Match>().Select(item => Convert.ToByte(item.Value, 16)).ToArray();
            Console.WriteLine(Encoding.BigEndianUnicode.GetString(buffer));

2、字符串编码
编码就相对比较简单了。
string temp_code = string.Concat(encoding.GetEncoding().GetBytes(sources).Select(item => item.ToString("x").PadLeft(2, '0')));
我们上面的解码过程中就是把字符串用各种编码方式进行编码然后和已有的编码比较。
3、编码转换
            byte[] buffer = Encoding.UTF8.GetBytes(sources);//可能是从其他地方获取过来的参数
            buffer = Encoding.Convert(Encoding.UTF8/*原始编码*/, Encoding.ASCII/*目标编码*/, buffer);

PS:
在web开发中可能经常遇到的是url编码、解码的问题,或者url参数乱码等等。。。
Server.UrlEncode("");
Server.UrlDecode("");
System.Web.HttpUtility.UrlEncode("");
System.Web.HttpUtility.UrlDecode("");
System.Uri.EscapeDataString("");
System.Uri.UnescapeDataString("");
通常可以使用这些工具类来编码、解码。乱码一般都是因为发送方和接收放使用的编码不一致造成的,在解码过程中加上正确的编码即可。




无限泛化!AI背景文字识别,腾讯文字六宫格 本文介绍了生成大规模文字验证码数据集的方法,通过使用上百种字体和2万+字库,结合随机背景和数十种图像增强技术,生成了2000万+的多样化样本。该方法采用二阶段训练策略,确保模型对字体、形态、形变等具有强泛化能力,可适配腾讯、咸鱼等多种平台的文字验证码识别,包括生僻字和复杂形变情况。生成的模型在多种验证码场景下表现优异,但强调该方法仅用于技术研究,严禁非法用途。 阅读详情

相关推荐

LabVIEW通过ActiveX控件实现与三菱FX5U PLC的高效数据交互

本文详细介绍了如何利用LabVIEW的ActiveX控件,通过三菱官方MX Component工具包实现与FX5U PLC的高效数据交互。文章从环境配置、控件插入到实战代码解析,系统讲解了连接建立、数据读写及资源释放的全流程,并提供了关键的避坑指南,帮助工程师快速构建稳定可靠的上位机通讯系统。

weixin_29197051的博客 373

C# 加密解码各种方法

C# 加密解码各种方法

againknow的博客 6033

Wireshark 4.6 TCP 流图解析:3种拥塞控制算法可视化对比

本文深入解析Wireshark 4.6的TCP流图功能,通过可视化对比Reno、Cubic和BBR三种主流拥塞控制算法的性能特征。文章提供详细的实验环境搭建方法、流图分析工具使用技巧,以及算法调优建议,帮助网络工程师优化TCP性能。

weixin_29291573的博客 447

C#中一些字符串操作的常用用法,c#编码和解码

//获得汉字的区位码  byte[] array = new byte[2];  array = System.Text.Encoding.Default.GetBytes("啊");  int i1 = (short)(array[0] - /0);  int i2 = (short)(array[1] - /0);//unicode解码方式下的汉字码  array

老熊专栏 4683

硬件原理图分析

文章目录1 硬件原理图分析1.1 MCU部分1.2 NB部分1.3 电源部分 1 硬件原理图分析 1.1 MCU部分 MCU接口部分没啥需要注意,都是常规操作。 1.2 NB部分 U4是用来防静电的。 由于NB的以上几个引脚只支持1.8V,所以这里需要3.3V转1.8V的电路。只要把握住谁改变电平就好分析是怎么实现电平转换的了。 1.3 电源部分 图中的MOS是用来实现USB和电池同时插入时只能USB供电功能的。 ...

木子皿--啥都不会的菜鸟 8174

【AUCell打分】:评估一个基因集在单细胞转录组的每个细胞中特定的活性程度

AUCell使用曲线下面积来计算输入基因集的一个有意义的基因子集是否在每个细胞的表达基因中富集。AUC 分数在所有细胞中的分布允许探索特征的相对表达。由于评分方法是基于排名的,因此 AUCell 与基因表达单位和归一化程序无关。此外,由于细胞是单独评估的,因此可以很容易地应用于更大的数据集。

weixin_40695088的博客 1万+

C#字符串base64的编码和解码

记录知识点

weixin_50702814的博客 1889

保姆级教程:Unity编辑器汉化全流程(从下载到配置避坑指南)

本文提供Unity编辑器汉化的保姆级教程,涵盖从下载中文语言包到配置避坑的全流程。详细解析版本适配、文件系统交互及编辑器底层配置逻辑,帮助开发者高效完成汉化,解决常见报错问题,提升工作效率。

weixin_30825581的博客 155

escape、encodeURI、encodeURIComponent等方法的区别

escape 方法返回一个可在所有计算机上读取的编码 String 对象。function escape(charString : String) : String参数charString 必选。要编码的任何 String 对象或文本。 备注escape 方法返回一个包含 charstring 内容的字符串值(Unicode 格式)。所有空格、标点、重音符号以及任何其他非 ASCII 字符都用 %

一个小石 1063

从FrSky到TBS:深度解析航模2.4G遥控协议江湖史(附ELRS高频头改装指南)

本文深度解析了航模2.4G遥控协议的技术演进史,从FrSky ACCST的兴衰到TBS Crossfire的崛起,再到开源协议ExpressLRS的革命性突破。文章不仅对比了各协议在延迟、距离与抗干扰能力上的技术内核,还提供了为多协议遥控器加装TBS Crossfire高频头的实战改装指南,帮助玩家打通协议壁垒,提升飞行体验。

weixin_29193259的博客 737

美团外卖 mtgsig 1.2 逆向工程与补环境实战指南

本文深入解析了美团外卖核心风控参数mtgsig 1.2的生成机制与逆向实战。通过拆解其复杂的JSON结构,揭示了设备指纹、环境信息加密等关键字段。重点阐述了在Node.js中模拟浏览器环境(补环境)的核心方法,包括DOM/BOM对象、本地存储及Canvas/WebGL等高级指纹的模拟技巧,为安全研究和合规自动化测试提供了一套完整的技术指南。

uber9的博客 410

c# 字符串解析乱码

结论:我在使用工具软件时它把字符串转换为byte[]默认使用的编码格式为Default,而我在解析时使用了UTF-8的编码格式,所以出现乱码。由于测试时使用了测试工具,字符串转字节的时候应该是用了Default的格式进行转换的,所以转出的时候使用同样的方式才能正确转换。然后我针对UTF8和Default 两种格式进行了测试。1.解码格式和编码格式一致。2.编码格式不支持中文。

梦想是世界和平 1094

2024年 Flutter 面试题大全(2024.6.28持续更新中)

2024年 Flutter 面试题大全(持续更新中)

Code Metaverse 6669

.net html 编码格式,.NET编码解码(HtmlEncode与HtmlEncode)

编码代码:System.Web.HttpUtility.HtmlEncode("何问起");解码代码:System.Web.HttpUtility.HtmlDecode("<a href="http://hovertree.com/">何问起</a> ");本工具还可以实现Unicode解码,例如可以把以下代码解码试试:何问起,我爱你,就像老鼠爱大米。详细实现:Defaul...

weixin_39684454的博客 698

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

asp.net 字符串转html标签,Asp.Net中的字符串和HTML十进制编码转换实现代码

Asp.Net将字符串转为区码位编码,或者将区码位编码字符串转为对应的字符串内容。数字;这种编码其实就是将单个字符转为对应的区码位(数字),然后区码位前缀加上“”,后缀加上“;”组成,对于这种编码的字符串,浏览器会自动解析为对应的字符。Asp.Net字符串和编码转换源代码和测试代码如下:using System;using System.Text.RegularExpressions;public...

weixin_42306055的博客 542

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

C# URL编码解码的跨平台陷阱:当.NET遇上Java/Python

本文深入探讨了C# URL编码解码在跨平台开发中的常见陷阱,特别是与Java/Python的兼容性问题。通过分析大小写敏感性、空格编码差异和保留字符处理等核心问题,提供了实用的跨平台解决方案和最佳实践,帮助开发者避免系统集成中的潜在风险。

weixin_29254029的博客 304

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

JS与C#(.net)编码与解码

推荐C#程序员,在ASP.NET中使用 Microsoft.JScript.GlobalObject.encodeURIComponent("!@#$&*()=:/;?+'中 文");编码 而不要使用Server.UrlEncode("!@#$&*()=:/;?+'中 文");   在客户端用js方法decodeURIComponent()来解析;将不会出现"!@#$&*()=:/;?+'中

longlong821的专栏 7356

C#编码、解码

1、HttpUtility.UrlEncode 方法: 对 URL 字符串进行编码,以便实现从 Web 服务器到客户端的可靠的 HTTP 传输。重载列表: [1]将字节数组转换为已编码的 URL 字符。 [C#] public static string UrlEncode(byte[]); [2]对 URL 字符串进行编码。 [C#] public static string Ur...

weixin_30713953的博客 243

Asp.Net \uxxx Unicode编码解码

/// <summary> /// Unicode编码 /// </summary> /// <param name="str"></param> /// <returns></returns> public static ...

weixin_30268921的博客 520

关于C#(ASP.net)存取MySQL LongText字段的心得

 关于C#(ASP.net)存取MySQL LongText字段的心得 1.LongText字段是MySQL用于存储超长字符串的数据库类型,有点类似MSSQL的memo。 2.Connector/NET读取LongText的内部实现过程:1)  Connector/NET内部将LongText看作字符串,对外以字符串的方式进行读写,不运行调用getBytes的方法。2)

yahle的技术专栏 7999

JS中URL编码与.net URL解码 (待分析出错原因)

javascript函数的体例:     encodeURI("url地点")//编码     decodeURI("url地点")//解码   asp.net的体例:     Server.UrlEncode("url地点")//编码     Server.UrlDecode("url地点")//解码   ps:可以用js编码.net解码.也就是它们编码解码体

迷途的鸽子 608

js和C#中的字符串编码解码

js和C#中的字符串编码解码   在用javascript对URL字符串进行编码中,虽然escape()、encodeURI()、encodeURIComponent()三种方法都能对一些影响URL完整性的特殊字符进行过滤。但后两者是将字符串转换为UTF-8的方式来传输,解决了页面编码不一至导致的乱码问题。例如:发送页与接受页的编码格式(Charset)不一致(假设发送页面是GB2

1981

c#先进行uri解码_C# Winform 中 如何进行 UrlEncode 编码及解码

在Asp.net 开发中可使用 Server.HTMLEncode、Server.URLEncode将文本或 URL 的特殊字符进行编码,而在控制台或 Winform 程序开发中,却没法使用到这些方法。解决办法,如下:右击项目 --> 添加引用 -->.NET-->System.Web--> 确定。但在.net4.0 的框架中,是没法找到 System.Web 的,可用如下...

weixin_35143502的博客 739

ASP.NET Core(C#) 字符串常用处理转换的扩展方法工具类

本文主要介绍ASP.NET Core(C#)中,字符串常用的处理方法(包括去除字符中html标签方法、字符串转成字节、HtmlEncode、HtmlDecode、字符串转成Unicode、字符串相关判断方法、判断是否邮件字符串、判断是否url地址、字符串转换成其它数据类型等方法),封装成扩展方法工具类,以及相关示例代码。 原文地址:ASP.NET Core(C#) 字符串常用处理转换的扩展方法工具类 ...

weixin_42098295的博客 366

JS中URL编码与.net URL解码

javascript函数的体例:     encodeURI("url地点")//编码     decodeURI("url地点")//解码   asp.net的体例:     Server.UrlEncode("url地点")//编码     Server.UrlDecode("url地点")//解码   ps:可以用js编码.net解码.也就是它们编码解码体

pingqingbo的专栏 480

java .net base64,在Java中编码base64并在C#中解码

Im having problems whith base64 between java and c#, im sending encoded string to a asp.net handler from an java urlconnection, i compare both strings, the one generated in java from byte array and th...

weixin_31421601的博客 393
上一篇: [C#] 10进制转62进制,实现穷举指定位数的所有密码组合(暴力破解)
下一篇: 匿名对象和object的转换
Hauk
博客等级 码龄15年 219粉丝 20原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值