zoukankan      html  css  js  c++  java
  • c# 计算中文字节数与JAVA不符的解决方法

     c# 中方法

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

     该方法得出的字符长度为14,JAVA端计算得出的长度为21

    换为以下代码解决

    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#,编码要一致
  • 相关阅读:
    3.18构建之法读后感2
    3.17Android学习
    coredns-66bff467f8-krldv CrashLoopBackOff
    6443: connect: network is unreachable
    卸载flannel
    电梯演讲
    每日学习
    梦断代码读后感1
    每日学习
    每日学习
  • 原文地址:https://www.cnblogs.com/icejd/p/9916094.html
Copyright © 2011-2022 走看看