客戶端字串編碼導致的伺服器端詭異問題

2021-07-11 05:37:47 字數 1075 閱讀 9426

背景:httpclient進行乙個http介面的測試,分別測試兩個伺服器的統一介面,其中的乙個是亂碼, 另乙個正常。

server1正常返回:

api介面,使用者開戶----開始,passportid:y20160414000000003 username:馬 usernamehex:e9a9ace7bba7e5b9b3

server2異常返回:

api???????----??,passportid:y20160414000000003 username:????????? usernamehex:3f3f3f3f3f3f3f3f3f

現象:server2對於伺服器本身的日誌就是打的亂碼,引數的日誌也是亂碼

server2只有這個介面的中文顯示不正確,其他介面的日誌正確

影響:由於伺服器端獲得的引數為亂碼,導致伺服器端不能正確識別姓名字段,返回客戶端姓名格式不正確的提示資訊。

原因:客戶端對中文的編碼和伺服器端不一致,這就解釋了為什麼拿著伺服器端收到的密文在客戶端可以正常解密而在伺服器端不能解密的現象。但是仍然奇怪的是伺服器端列印日誌中的自身設定的中文(非客戶端傳過來的中文)仍然為亂碼,這個還是乙個

solution:

將引數username先進行轉碼然後再請求介面。問題就能得到解決。

@test(dataprovider = "user_account_open", dataproviderclass = useraccountopendata.class)

public void user_account_open(string comment, string passportid,string sys_key, string username,string useridcardtype, string idcardno,string bankaccountno, string bankid, string target) throws exception

轉碼前日誌,

轉碼後日誌,

oracle客戶端訪問伺服器端

1.客戶端工具 可以使用sqlplus,oacle sql developer,pl sql developer 最近專案用到了oracle,使用的是oracle10g,因為小組內有多人使用資料庫,並且oracle資料庫很佔內 存,就放在單獨的一台伺服器上,所以最好每個人都裝乙個oracle10g的...

客戶端與伺服器端通訊

關係圖 傳送 邏輯管理器 處理邏輯傳送指令 指令解析管理器 根據協議xml解析指令成二進位制資料 把二進位制資料傳給伺服器 接收 伺服器傳送二進位制資料到客戶端 指令解析管理器 根據協議xml解析二進位制資料 根據解析資料對映到邏輯類來處理 2 1 3 20 2,2 21 1,1,2 指令名和指令名...

fms伺服器端呼叫客戶端

la server呼叫client端 要把函式定義到nc上!mync new netconnection mync.onstatus function info mync.connect rtmp localhost connect mync.msgfromserver function msg m...