2016-07-28 178 views
1

我與外部API的工作,我想測試它如何接受特殊字符...所以我嘗試發送以下值: -爲什麼這些2個charecters£¬並沒有被正確解碼

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

這得到了保存在外部系統內部如下: -

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

這意味着外部API無法在%u00a3£解碼,也無法在%u00ac¬解碼?雖然它能夠正確解碼其他值......所以有沒有一個原因,爲什麼它會以不同的方式處理£¬?換句話說,它無法正確解碼這兩個租船人?

第二點。因爲我的api不支持這些類型的字符,那麼有沒有一種方法可以檢查一個字符串是否包含這些值,並向用戶顯示一條錯誤消息,以避免添加這些字符?

+1

你怎麼解碼他們? – Steve

+0

@Steve我正在使用UriBuilder(apiurl);那裏的apiurl將包含API的URI和傳遞的參數,包括英鎊和¬值 –

回答

2

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

當角色£¬沒有在ASCII字符集存在,API返回的字符(Unicode十六進制值%u以表明它是一個unicode字符和00ac,這是字符¬的十六進制值)。

這也可能是您發送該值的程序或讀取字符串的方式的問題。沒有進一步的信息就無法分辨。

+0

這是一個有效的觀點,我認爲...所以有沒有辦法阻止用戶添加這些值?我的意思是我可以檢查是否一個字符串包含非ASCII字符(如¬和£)並向用戶顯示錯誤消息? –

+0

@johnG我真的不太瞭解c sharp或html,因此您應該向其他人詢問,或者搜索是否已在另一個問題中得到答案。 – fraret

相關問題