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#,编码要一致
相关文章
相关标签/搜索