前言:報文在專案之間傳遞的時候出現驗籤失敗,但是列印出來的需要驗籤的字串顯示結果都是正確的;直接將傳送的位元組流(byte陣列)列印出來,發現了其中中文的byte值不一樣,初步斷定是報文在傳輸和接收時的編碼方式不一樣;但是我的兩個專案都是佈署在一台機器上的,應該不會出現此問題,接下來,一步步找出真正原因:
確定當前系統編碼方式,其實從工程中的屬性就可以看出來,但是用**驗證一下更靠譜:
string s = "中文集abc結果";byte b =s.getbytes();
for(byte
i : b)
system.out.println("");
string t;
try }
catch
(unsupportedencodingexception e)
驗證了當前系統的編碼方式,接下來就挨個試嘍:
最後發現在驗籤的時候都是使用的預設的方法:"".getbytes();把兩邊的編碼方式改成一致即修復問題
看來真是傷不起,以後使用"".getbytes的時候一定要把編碼方式加上。
作業系統 如何用程式確定當前系統的儲存模式
首先介紹一下儲存模式 小端模式 little endian 和大端儲存相反。現在可以用乙個c語言程式來判斷處理器是什麼端儲存模式?思路 假設int型別的變數i被初始化為1.則以大端模式儲存則在記憶體中為 0x0 0x0 0x0 0x1 低位址到高位址 而已小端儲存則為 0x1 0x0 0x0 0x0...
iOS開發 判定當前系統語言
1 ios程式名稱國際化 1.2 新建後,可以看到工作目錄結構檔案如下,單擊infoplist.strings,檢視右邊的屬性,在localization欄新增語言。1.3 新增完成後開啟對應語言檔案,比如english的新增 cfbundledisplayname china chinese檔案新...
ORACLE確定當前記錄和下一條記錄之間的差值
今天要給客戶做一張報表,主要是反應當天的話務數量與前一天之間的對比情況,也就是說,假設表結構是這樣的 日 期 呼入號碼數 2015 12 26 10248 2015 12 27 9640 2015 12 28 9362 2015 12 29 9911 那麼做出來的表應該是這樣的 日 期 呼入號碼數 ...