C# Winform中 如何进行UrlEncode编码及解码
来源:互联网 发布:办公室椅子知乎 编辑:程序博客网 时间:2024/05/29 19:16
在Asp.net开发中可使用Server.HTMLEncode、Server.URLEncode 将文本或URL的特殊字符进行编码,而在控制台或Winform程序开发中,却没法使用到这些方法。
右击项目-->添加引用-->.NET-->System.Web-->确定。
但在.net4.0的框架中,是没法找到System.Web的,可用如下方法解决:
右击项目-->添加引用,请切换到浏览标签,在 C:\Windows\Microsoft.NET\Framework\v2.0.50727 目录下找到,其中 v2.0.50727 是你实际使用的 .NET 版本。(一定要是这个,4.0目录下的无效)
System.Web.HttpUtility.HtmlEncode(str);
System.Web.HttpUtility.HtmlDecode(str);System.Web.HttpUtility.UrlEncode(str);
System.Web.HttpUtility.UrlDecode(str);
编码后得到的字串和用Server.URLEncode编码得到的不一样,那边接收到的也是乱码??
System.Web.HttpUtility.UrlEncode(str,System.Text.Encoding.Unicode);
System.Web.HttpUtility.UrlEncode(str,System.Text.Encoding.UTF8);
System.Web.HttpUtility.UrlEncode(str,System.Text.Encoding.GetEncoding( "GB2312 "));
解码也可以指定编码的
System.Web.HttpUtility.UrlDecode(str,System.Text.Encoding.Unicode);
System.Web.HttpUtility.UrlDecode(str,System.Text.Encoding.UTF8);
System.Web.HttpUtility.UrlDecode(str,System.Text.Encoding.GetEncoding( "GB2312 "));
但在C#里,HttpUtility.UrlEncode()转换出来的编码,到了客户端用JS的decode方法转换后,发现总有个"+"号,原来字符串是没有“+”号的。
经分析后,发现问题原因在于,微软的HttpUtility.UrlEncode方法把【空格】转成"+"了( 如果原来是 "+" 则被转换成 "%2b" ) ,为了符合JS编码格式,把"+"替换成 "%20"(%20为空格的urlencode编码)即可。
如:
服务端:
message= HttpUtility.UrlEncode(message,System.Text.Encoding.UTF8).Replace("+", "%20");
客户端:
decodeURIComponent(message);
PS:后来用JAVA也测试一下,发现JAVA的urlEncode方法没这个问题,java直接就把【空格】转成"%20"了 。
url参数中有+、空格、=、%、&、#等特殊符号的问题解决
=======================================================================
url出现了有 “ +, 空格, /, ?, %, #, &, = ” 等8个特殊符号的时候,可能在服务器端无法获得正确的参数值,如何是好?
解决办法: URLencode字符转义
将这些字符转化成服务器可以识别的字符,对应关系如下:
+ URL 中+号表示空格 %2B
空格 URL中的空格可以用+号或者编码 %20
/ 分隔目录和子目录 %2F
? 分隔实际的URL和参数 %3F
% 指定特殊字符 %25
# 表示书签 %23
& URL 中指定的参数间的分隔符 %26
= URL 中指定参数的值 %3D
- C# Winform中 如何进行UrlEncode编码及解码
- 控制台或Winform程序中如何编码或解码Server.URLEncode
- 控制台或Winform程序中如何编码或解码Server.URLEncode
- 控制台或Winform程序中如何编码或解码Server.URLEncode
- C#中Winform如何获取HTTPUtility.UrlEncode
- 怎么进行:URLEncode编码 与 URLDecode解码
- C# winform及.net 中使用 Server.URLEncode
- C#版winform实现UrlEncode (URL编码)
- C#版winform实现UrlEncode (URL编码)
- UrlEncode编码/UrlDecode解码
- C#在类中使用Server.MapPath()及在winform中对字符串进行编码
- ASP中实现的类似URLEncode的编码函数及对应解码函数
- ASP中实现的类似URLEncode的编码函数及对应解码函数
- Qt进行UrlEncode/UrlDecode(URL编码/解码)
- Qt进行UrlEncode/UrlDecode(URL编码/解码)
- Jquery字符UrlEncode 编码、解码 --C#UrlEncode
- PHP中编码解码urlencode()、urldecode()、rawurlencode()、rawurldecode()
- 网址UrlEncode编码/UrlDecode解码
- 解决Failed to load class "org.slf4j.impl.StaticLoggerBinder"问题
- C语言printf()、sprintf()、vsprintf() 的区别与联系
- 解决input、textarea里使用disable属性文字变灰问题
- spring通过编程的方式获取bean
- 解决 IDEA 发布到 Tomcat 项目的 404 和 相对路径 问题
- C# Winform中 如何进行UrlEncode编码及解码
- 积分表
- git操作记录
- 南邮CTF逆向题第一道Hello,RE!解题思路
- Windows CMD 命令行笔记
- pandas.cut与pandas.qcut使用方法与区别
- Luogu 2800
- java 坑
- 歌伦堡博物馆(uvalive 4123)