c# 計算中文字節數與JAVA不符的解決方法

 c# 中方法java

string str = "中華人民共和國";
int strLen = System.Text.Encoding.Default.GetByteCount(str);

 該方法得出的字符長度爲14,JAVA端計算得出的長度爲21編程

換爲如下代碼解決c#

string str = "中華人民共和國";
int strLen = System.Text.Encoding.UTF8.GetByteCount(str);

 問題獲得解決編程語言

補充一下,C#與JAVA通信時,計算字節長度的編碼必定要與傳輸的編碼一致,不然,若是接收方限制比較嚴格的話,會報異常,我這裏報錯是由於,我傳輸用的是GBK,計算字長用的是UTF-8,結果長度字段值比實際傳輸的字節要長,JAVA端報錯編碼

java.io.EOFException
	at java.io.DataInputStream.readFully(DataInputStream.java:197)
	at java.io.DataInputStream.readFully(DataInputStream.java:169)

  

總結,有的時候,不是編程語言互通的問題,不要有問題就去罵JAVA或C#,編碼要一致
相關文章
相關標籤/搜索