title author date CreateTime categories
win10 uwp url encode
lindexi
2019-5-21 9:54:7 +0800
2018-2-13 17:23:3 +0800
Win10 UWP

开发中,经常遇到使用中文无法作为 URL 传输的情况,如果想把 中文作为 URL 传输,那么需要对中文进行转换。
UWP 提供一些方法让我们很容易把 中文转为 URL ,但是转换还是有一些坑。
我最近图床使用中文图片上传,地址出现错误。
原因是URL不支持中文,所以需要把中文转URL可以认识字符,那么如何转?
我发现有好多个方法去转,下面将会告诉大家我知道所有方法。

可以使用的函数有三个
Uri.EscapeDataString WebUtility.UrlEncode WebUtility.HtmlEncode 都可以进行转换,但是这三个是不同的。

对于中文,Uri.EscapeDataString WebUtility.UrlEncode转换得到是一样。

对于符号,Uri.EscapeDataString WebUtility.UrlEncode 有一点不同。

WebUtility.HtmlEncode 做的转换很少,是将 html 源文件中不容许出现的字符进行编码,于是他的作用是比较小的。

Uri.EscapeDataString WebUtility.UrlEncode WebUtility.HtmlEncode 对应的是
Uri.UnescapeDataString WebUtility.UrlDecode WebUtility.HtmlDecode,如果从中文转 URL 就可以用他们弄回来。

先写一个测试使用代码,看看对
对字符串:~+ =!@$#^&*http://lindexi.oschina.io转换的到的是什么

通过 Uri.EscapeUriString 返回 ~+%20=!@$#%5E&*http://lindexi.oschina.io

WebUtility.UrlEncode 返回 %7E%2B+%3D!%40%24%23%5E%26*http%3A%2F%2Flindexi.oschina.io

他们都是标准,关于区别,请看 http://stackoverflow.com/a/11236038/6116637

WebUtility.HtmlEncode 可以转 &# ,把 <&lt;>&gt; 所以需要在UWP进行这个转换就可以使用函数。

如果希望继续看三个转换有哪些不同,请看下面,我做了不同字符使用三个函数获得的。

| | Uri.EscapeUriString|Uri.EscapeDataString|WebUtility.UrlEncode|WebUtility.HtmlEncode|
|--|--|--|--|
| 空格 |%20|%20 |+ | 空格|
|! |!|%21 |! |!|
|+ |+|%2B |%2B |+|
|" |%22|%22 |%22 |"|
|# |#|%23 |%23 |#|
|$ |$|%24 |%24 |$|
|* ||%2A | |*|
|( |(|%28 |( |(|
|) |)|%29 |) |)|
|~ || |%7E |~|
|1 |1|1 |1 |1|
|2 |2|2 |2 |2|
|3 |3|3 |3 |3|
|a |a|a |a |a|
|b |b|b |b |b|
|: |:|%3A |%3A |:|
|' |'|%27 |%27 |'|
|< |%3C|%3C |%3C |&lt;|
|> |%3E|%3E |%3E |&gt;|
|[ |[|%5B |%5B |[|
|] |]|%5D |%5D |]|
|/ |/|%2F |%2F |/|
|{ |%7B|%7B |%7B |{|
|} |%7D|%7D |%7D |}|
|| |%7C|%7C |%7C |||
|, |,|%2C |%2C |,|
|? |?|%3F |%3F |?|
|中 |%E4%B8%AD|%E4%B8%AD |%E4%B8%AD |中|
|文 |%E6%96%87|%E6%96%87 |%E6%96%87 |文|

https://blogs.msdn.microsoft.com/yangxind/2006/11/08/dont-use-net-system-uri-unescapedatastring-in-url-decoding/

2019-5-21-win10-uwp-url-encode的更多相关文章

  1. win10 uwp 读取保存WriteableBitmap 、BitmapImage

    我们在UWP,经常使用的图片,数据结构就是 BitmapImage 和 WriteableBitmap.关于 BitmapImage 和 WriteableBitmap 区别,我就不在这里说.主要说的 ...

  2. Win10 UWP开发实现Bing翻译

    微软在WP上的发展从原来的Win7到Win8,Win8.1,到现在的Win10 UWP,什么是UWP,UWP即Windows 10 中的Universal Windows Platform简称.即Wi ...

  3. 【Win10 UWP】URI Scheme(一):Windows Store协议的解析和使用

    协议是Windows Phone和Windows Store应用的一个重要特点,可以做到在不同应用之间进行互相呼起调用.小小协议,学问大着呢.我打算写几篇关于协议在UWP中使用的文章. 这一讲的主要对 ...

  4. win10 UWP GET Post

    win10 应用应该是要有访问网络,网络现在最多的是使用GET,Post,简单的使用,可以用网络的数据:获得博客的访问量. 在使用网络,我们需要设置Package.appxmanifest 网络请求使 ...

  5. win10 UWP 剪贴板 Clipboard

    win10 UWP 剪贴板 Clipboard使用Windows.ApplicationModel.DataTransfer.Clipboard 设置文本 DataPackage dataPackag ...

  6. win10 uwp smms图床

    本文,如何使用smms图床上传图片,用到win10 uwp post文件,因为我是渣渣,如果本文有错的,请和我说,在本文评论,或发给我邮箱lindexi_gd@163.com,请不要发不良言论 找到一 ...

  7. win10 uwp 线程池

    原文:win10 uwp 线程池 如果大家有开发 WPF 或以前的程序,大概知道线程池不是 UWP 创造的,实际上在很多技术都用到线程池. 为什么需要线程池,他是什么?如何在 UWP 使用线程池,本文 ...

  8. win10 uwp 使用 asp dotnet core 做图床服务器客户端

    原文 win10 uwp 使用 asp dotnet core 做图床服务器客户端 本文告诉大家如何在 UWP 做客户端和 asp dotnet core 做服务器端来做一个图床工具   服务器端 从 ...

  9. win10 uwp httpClient 登陆CSDN

    本文告诉大家如何模拟登陆csdn,这个方法可以用于模拟登陆其他网站. HttpClient 使用 Cookie 我们可以使用下面代码让 HttpClient 使用 Cookie ,有了这个才可以保存登 ...

  10. win10 uwp 手把手教你使用 asp dotnet core 做 cs 程序

    本文是一个非常简单的博客,让大家知道如何使用 asp dot net core 做后台,使用 UWP 或 WPF 等做前台. 本文因为没有什么业务,也不想做管理系统,所以看到起来是很简单. Visua ...

随机推荐

  1. ThreadLocal的使用和理解

    ThreadLocal是个threadlocalvariable(线程局部变量),其实就是为每一个使用该变量的线程都提供一个变量值的副本,从线程的角度看,每个线程都保持一个对其线程局部变量副本的隐式引 ...

  2. rabbitmq一个连接多个信道channel

    https://www.cnblogs.com/eleven24/p/10326718.html

  3. https://segmentfault.com/a/1190000009892006?utm_source=tuicool&utm_medium=referral

    https://segmentfault.com/a/1190000009892006?utm_source=tuicool&utm_medium=referral

  4. PHP随机生成不重复的8位卡号(数字)和卡密(字符串)

    一.生成不重复的随机数字,可自定义长度(最多支持10位数) /** * 生成不重复的随机数字(不能超过10位数,否则while循环陷入死循环) * @param int $start 需要生成的数字开 ...

  5. MariaDB 管理

    在尝试运行MariaDB之前,首先确定其当前状态,运行或关闭. 有三个选项用于启动和停止MariaDB - 运行mysqld(MariaDB脚本). 运行mysqld_safe启动脚本. 运行mysq ...

  6. SQL BETWEEN运算符

    SQL BETWEEN运算符 BETWEEN 操作符用于选取介于两个值之间的数据范围内的值. SQL BETWEEN 运算符 BETWEEN运算符选择给定范围内的值.值可以是数字,文本或日期. BET ...

  7. PHP chroot() 函数

    改变根目录: <?php// Change root directorychroot("/path/to/chroot/"); // Get current director ...

  8. 函数————swap

    swap(vec[i],vec[j]); 交换两个元素.

  9. paper 144:人生苦短,快用Python

    1.Python 语言特点 Python是一种面向对象.直译式计算机程序设计语言,这种语言的语法简捷而清晰,具有丰富和强大的类库,基本上能胜任你平时需要的编程工作. Python的优点: (1)编写的 ...

  10. ZROI week2

    \[ZROI week2\] 除草机 首先考虑最少的拐点肯定是那种螺旋形状的,然后手玩几个数据发现和列数(行数)有关,且每增加1就是上一个状态加2,直接\(O(1)\)公式即可 吐槽:为啥\(n,m\ ...