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#,編碼要一致