• C# 与 C/C++ 网络传输字符串解决方案


    {

      不管你的数据加没加密,只要有中文,请转16进制后再处理,把16进制再转为GB2312的byte再发送,

      接收的话同样 c++ 发送时转16进制再发送,c#16进制转字符串后再转GB2312就可以了

      虽然麻烦,但是是可以的,非常棒棒的

    }

    //参考

    实际的你要自己写

        //添加字符串 支持中文
        public void add_strings(string v)
        {
            v = Encoding.Default.GetString(Encryption.StringToHex(v));
            //得到字符串转换的字节编码
            byte[] b = m_gb2312.GetBytes(v);
    
            //添加字符串长度
            add_int(b.Length);
    
            //添加字符串
            _add_mem(b.Length);
            for (int i = 0; i < b.Length; ++i)
                m_data[m_size + i] = b[i];
            m_size += b.Length;
        }
        public bool get_strings(ref string v)
        {
            //得到字符串长度
            int sl = -1;
            if (!get_int(ref sl))
                return false;
    
            //判断长度是否合法
            if (m_data.Length - m_position < sl)
                return false;
    
            //得到字符串
            v = m_gb2312.GetString(m_data, m_position, sl);
            m_position += sl;
    
            string Temp = Encoding.Default.GetString(Encoding.Default.GetBytes(v));
            byte[] str = Encryption.HexToString(Temp);
    
            v = m_gb2312.GetString(str, 0, str.Length);
    
            return true;
        }
  • 相关阅读:
    ExecuteNonQuery()返回值
    GridView导入至EXCEL (报错处理:只能在执行 Render() 的过程中调用 RegisterForEventValidation)
    mysql 远程登录
    四舍六入 银行家算法
    linux-grep-tail-find
    spring 事务注解
    aop execution 表达式解析
    事务有效条件
    oracle 日期取 月 日
    spring cloud 定时任务
  • 原文地址:https://www.cnblogs.com/YZFHKMS-X/p/11831429.html
Copyright © 2020-2023  润新知