为什么这两个字符£和¬没有被正确解码

时间:2016-07-28 17:30:11

标签: c# html asp.net http urlencode

我正在使用外部api,我想测试它将如何接受特殊字符...所以我尝试发送以下值: -

!"£$%^&*()_+-=[]{},./;'[]#?:@~{};:\|¬`

保存在外部系统中,如下所示: -

!"%u00a3$%^&*()_+-=[]{},./;'[]#?:@~{};:\|%u00ac` 

这意味着外部api无法将%u00a3解码为£,也无法将%u00ac解码为¬ ??虽然它能够正确解码其他值...所以它有理由以不同的方式处理£¬吗?换句话说,它无法正确解码这两个承租人吗?

第二点。因为我的api不支持那些类型的字符,所以有没有办法可以检查一个字符串是否包含这样的值,并向用户显示一条错误消息,告知他们不应该添加这些字符?

1 个答案:

答案 0 :(得分:2)

外部api可能使用ASCII字符集: https://en.wikipedia.org/wiki/ASCII

由于ASCII字符集中不存在字符£¬,因此api返回字符的unicode十六进制值(%u,表示它是一个unicode字符,{ {1}},这是字符00ac)的十六进制值。

您发送值的程序或读取字符串的方式也可能是一个问题。如果没有进一步的信息,就无法说明。