最近在寫串口通信助手,遇到了需要把漢字轉換爲十六進制的尷尬局面,因爲其他字符如英文字母、換行和數字等都是有相對應的acsii碼的,超過127就是漢字的ASCII碼,這裏做一下說明提供給之後用到的朋友。
剛開始我是直接將字符串 轉換爲 16進制
使用的是如下代碼
byte[] byteArray = System.Text.Encoding.ASCII.GetBytes(textbox1_string);
結果如下
我來了123
63 63 63 49 50 51
是byte對應的十進制的數,可以對照ASCII碼對照表查看一下
63是對應的問號(“?”),所以說是所有的中文字符都是在該轉換方式都是問號
然後去查了一遍ASCII碼對照表,發現裏面並沒有中文對應的每個ASCII碼,所以只能另尋他策,然後 選擇了下面的轉換形式
byte[] byteArray = System.Text.Encoding.Default.GetBytes(textbox1_string);
結果如下
我來了123
CE D2 C0 B4 C1 CB 31 32 33
如圖是byte對應的十六進制的數,中文分割成兩個byte來表示