2019-5-21-win10-uwp-url-encode
| 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 可以转 &# ,把 < 转<,>转> 所以需要在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 |<|
|> |%3E|%3E |%3E |>|
|[ |[|%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 |文|
2019-5-21-win10-uwp-url-encode的更多相关文章
- win10 uwp 读取保存WriteableBitmap 、BitmapImage
我们在UWP,经常使用的图片,数据结构就是 BitmapImage 和 WriteableBitmap.关于 BitmapImage 和 WriteableBitmap 区别,我就不在这里说.主要说的 ...
- Win10 UWP开发实现Bing翻译
微软在WP上的发展从原来的Win7到Win8,Win8.1,到现在的Win10 UWP,什么是UWP,UWP即Windows 10 中的Universal Windows Platform简称.即Wi ...
- 【Win10 UWP】URI Scheme(一):Windows Store协议的解析和使用
协议是Windows Phone和Windows Store应用的一个重要特点,可以做到在不同应用之间进行互相呼起调用.小小协议,学问大着呢.我打算写几篇关于协议在UWP中使用的文章. 这一讲的主要对 ...
- win10 UWP GET Post
win10 应用应该是要有访问网络,网络现在最多的是使用GET,Post,简单的使用,可以用网络的数据:获得博客的访问量. 在使用网络,我们需要设置Package.appxmanifest 网络请求使 ...
- win10 UWP 剪贴板 Clipboard
win10 UWP 剪贴板 Clipboard使用Windows.ApplicationModel.DataTransfer.Clipboard 设置文本 DataPackage dataPackag ...
- win10 uwp smms图床
本文,如何使用smms图床上传图片,用到win10 uwp post文件,因为我是渣渣,如果本文有错的,请和我说,在本文评论,或发给我邮箱lindexi_gd@163.com,请不要发不良言论 找到一 ...
- win10 uwp 线程池
原文:win10 uwp 线程池 如果大家有开发 WPF 或以前的程序,大概知道线程池不是 UWP 创造的,实际上在很多技术都用到线程池. 为什么需要线程池,他是什么?如何在 UWP 使用线程池,本文 ...
- win10 uwp 使用 asp dotnet core 做图床服务器客户端
原文 win10 uwp 使用 asp dotnet core 做图床服务器客户端 本文告诉大家如何在 UWP 做客户端和 asp dotnet core 做服务器端来做一个图床工具 服务器端 从 ...
- win10 uwp httpClient 登陆CSDN
本文告诉大家如何模拟登陆csdn,这个方法可以用于模拟登陆其他网站. HttpClient 使用 Cookie 我们可以使用下面代码让 HttpClient 使用 Cookie ,有了这个才可以保存登 ...
- win10 uwp 手把手教你使用 asp dotnet core 做 cs 程序
本文是一个非常简单的博客,让大家知道如何使用 asp dot net core 做后台,使用 UWP 或 WPF 等做前台. 本文因为没有什么业务,也不想做管理系统,所以看到起来是很简单. Visua ...
随机推荐
- db2缓冲池
CREATE BUFFERPOOL DEMOBP IMMEDIATE SIZE 250 AUTOMATIC PAGESIZE 4 K ; CREATE BUFFERPOOL DEMOBP IMMED ...
- 面试题。线程pingpong的输出问题
第一种情况:public class Main { public static void main(String args[]) { Thread t = new Thread() { public ...
- go中浮点型用法总结
示例 // 浮点型的用法 package main import ( "fmt" "unsafe" ) func main() { // 如果浮点数声明时未指定 ...
- 函数体中return下面的代码不执行,但是需要预解析
//函数体中return下面的代码不执行,但是需要预解析 function fn(){ console.log(num);//undefined return function(){ }; var n ...
- mysql创建用户账号出错
在数据库中输入“create user 'tom'@'%' identified by '123456';”时,出现“ERROR 1819 (HY000): Your password does no ...
- 基于 Scrapy-redis 两种形式的分布式爬虫
基于 Scrapy-redis 两种形式的分布式爬虫 .caret, .dropup > .btn > .caret { border-top-color: #000 !important ...
- JS中实现replaceAll的方法
第一次发现JavaScript中replace() 方法如果直接用str.replace("-","!") 只会替换第一个匹配的字符. 而str.replace ...
- JavaSE---多线程---线程组
1.概述 1.1 Java中使用ThreadGroup表示线程组,可以对一批线程进行分类管理: Java运行程序直接对 线程组 进行控制,对线程组的控制相当于 同时控制这组线程: 一旦线程加入某一组 ...
- 【leetcode】1005. Maximize Sum Of Array After K Negations
题目如下: Given an array A of integers, we must modify the array in the following way: we choose an i an ...
- QT树莓派交叉编译开发环境搭建
QT树莓派交叉编译开发环境搭建 - JerryZone <Cross-compiling Qt Embedded 5.5 for Raspberry Pi 2> <Qt for Em ...