C# 为什么这两个角色£;和¬;没有被正确解码

C# 为什么这两个角色£;和¬;没有被正确解码,c#,html,asp.net,http,urlencode,C#,Html,Asp.net,Http,Urlencode,我正在使用一个外部api,我想测试它如何接受特殊字符。。。因此,我尝试发送以下值:- !"£$%^&*()_+-=[]{},./;'[]#?:@~{};:\|¬` 在外部系统中保存的信息如下:- !"%u00a3$%^&*()_+-=[]{},./;'[]#?:@~{};:\|%u00ac` 这意味着外部api无法将%u00a3解码为,也无法将%u00ac解码为,??虽然它能够正确解码其他值。。。那么,它对()和()的处理有什么不同的原因吗?换句话说,它无法正确解码这两个租

我正在使用一个外部api,我想测试它如何接受特殊字符。。。因此,我尝试发送以下值:-

!"£$%^&*()_+-=[]{},./;'[]#?:@~{};:\|¬`
在外部系统中保存的信息如下:-

!"%u00a3$%^&*()_+-=[]{},./;'[]#?:@~{};:\|%u00ac` 
这意味着外部api无法将
%u00a3
解码为
,也无法将
%u00ac
解码为
??虽然它能够正确解码其他值。。。那么,它对
)和
)的处理有什么不同的原因吗?换句话说,它无法正确解码这两个租船人


第二点。由于我的api不支持这些类型的字符,因此有没有办法检查字符串是否包含这些值,并向用户显示一条错误消息,说明他们不应添加这些字符?

外部api可能使用ASCII字符集:

由于字符
在ASCII字符集中不存在,api返回字符的unicode十六进制值(
%u
表示它是unicode字符,
00ac
,这是字符的十六进制值


发送值的程序或读取字符串的方式也可能有问题。没有进一步的信息就说不出来。

你是如何解码的???@Steve我正在使用UriBuilder(apiurl);其中APIRL将包含API的uri和传递的参数,包括£和­值。我认为这是一个有效点。。。那么有没有办法阻止用户添加这样的值呢?我的意思是,我可以检查字符串是否包含非ASCII字符,如¨和¨并向用户显示错误消息吗?@johnG我真的不太了解c sharp或html,所以你应该向其他人询问,或者搜索是否已在其他问题中得到回答。