Encoding encoding = Encoding.GetEncoding("gb2312"); 与byte[] ping = Encoding.UTF8.GetBytes(inputString);区别

Encoding encoding = Encoding.GetEncoding("gb2312"); 与byte[] ping = Encoding.UTF8.GetBytes(inputString);区别

public static string SubString(string inputString, int length)
        {
            byte[] ping = Encoding.UTF8.GetBytes(inputString);
            int count=Encoding.UTF8.GetByteCount(inputString);
            if (count <= length * 2)
            {
                return inputString;
            }
            ASCIIEncoding ascii = new ASCIIEncoding();
            int tempLen = 0;
            string tempString = "";
            byte[] s = ascii.GetBytes(inputString);
            for (int i = 0; i < s.Length; i++)
            {
                if ((int)s[i] == 63)
                {
                    tempLen += 2;
                }
                else
                {
                    tempLen += 1;
                }
                tempString += inputString.Substring(i, 1);
                if (tempLen >= length * 2)
                    break;
            }
            return tempString;
        }

public static string GetSub(string sub, int length)         {             if (sub == null) return string.Empty;             int len = length * 2;             //aequilateLength为中英文等宽长度,cutLength为要截取的字符串长度             int aequilateLength = 0, cutLength = 0;             Encoding encoding = Encoding.GetEncoding("gb2312");

string cutStr = sub.ToString();             int strLength = cutStr.Length;             byte[] bytes;             for (int i = 0; i < strLength; i++)             {                 bytes = encoding.GetBytes(cutStr.Substring(i, 1));                 if (bytes.Length == 2)//不是英文                     aequilateLength += 2;                 else                     aequilateLength++;

if (aequilateLength <= len) cutLength += 1;

if (aequilateLength > len)                     return cutStr.Substring(0, cutLength);//+ "..."             }             return cutStr;         }

时间: 2024-11-05 23:35:54

Encoding encoding = Encoding.GetEncoding("gb2312"); 与byte[] ping = Encoding.UTF8.GetBytes(inputString);区别的相关文章

.NET Core默认不支持GB2312,使用Encoding.GetEncoding(“GB2312”)的时候会抛出异常。

解决方案是手动安装System.Text.Encoding.CodePages包(Install-Package System.Text.Encoding.CodePages), 然后在Starup.cs的Configure方法中加入Encoding.RegisterProvider(CodePagesEncodingProvider.Instance),接着就可以正常使用Encoding.GetEncoding("GB2312")了. 原文地址:https://www.cnblogs

Convert.ToBase64String(Byte[])和Encoding.UTF8.GetString(Byte[])的区别

Encoding.UTF8.GetString是针对使用utf8编码得到的字符串对应的byte[]使用,可以还原我们能看懂的字符串而Convert.ToBase64String是对任意byte[]都可使用,得到的是用字符串表示的byte[]信息 内容类似"Jwl9Kh+lPfmSPio//UpvbA==" Base64有个优点,就是可以用文本格式传输,base64绝对不存在任何不可读的字符,也不存在关键字冲突字符,不需要转义.缺点:Base64比起它的原始文本增大约30%. 二者都是将

ASP:GB2312格式文本文件转换成UTF-8格式

'-------------------------------------------------'函数名称:gb2utf_file'作用:利用AdoDb.Stream对象来把GB2312格式文本文件转换成UTF-8格式'----------------------------------------------------Function gb2utf_file(utffilename)Dim gb2utf_1,gb2utf_2,gb2utf_array,gb2utf_igb2utf_1=L

关于GBK、GB2312、UTF8之间的区别

UTF-8:Unicode Transformation Format-8bit,允许含BOM,但通常不含BOM.是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三个字节)来编码.UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强.UTF-8编码的文字可以在各国支持UTF8字符集的浏览器上显示.如,如果是UTF8编码,则在外国人的英文IE上也能显示中文,他们无需下载IE的中文语言支持包. GBK是国家标准GB2312基础上扩容后兼容GB2312

ping -R 和 traceroute的区别

第一点 并不是所有的路由器都支持记录路由选项 第二点 记录路由一般是单项的选项,使得记录的IP地址番了一番,一来一回 第三点 主要原因,IP首部中留给选项的空间有限,不能存放当前太多数的路径 60 -20 -3 = 37 最多9个IP ping -R 记录由节点出去的IP地址,traceroute记录节点进去的IP地址. ping -R  拓扑 ping -R 经过点位置 可以发现全是出口,最后是进入本机 tracetroute 全是进入的口

写一个脚本批量转换项目中GB2312编码的文件为UTF-8编码

#!/bin/bash convert_file() { for file in `find .` do if [[ -f $file ]] then if [[ ${file##*.} == lua || ${file##*.} == ini ]]; then iconv -f GB2312 -t UTF-8 $file >> $file echo $file fi fi done } convert_file 原文地址:https://www.cnblogs.com/praglody/p/

C# 通讯协议封装

1.发送内码文字内容        0x31 ************************************************** FE 5C 4B 89                           包头 5E 00 00 00                    总长 31                                 消息类型 00 00 9E E4                            ID 4B 00 00 00        

C# 编码转换 UTF8转GB2312 GB2312转UTF8

来源:http://www.cnblogs.com/mahatmasmile/p/3467495.html/// <summary> /// GB2312转换成UTF8 /// </summary> /// <param name="text"></param> /// <returns></returns> public static string gb2312_utf8(string text) { //声明字

c#中文字符串与byte数组互相转化

因为中文字符串一个字符占两个字节,所以不能用正常的方式与byte之间进行互相转化 中文字符串转成byte[] byte[] ping = Encoding.UTF8.GetBytes("你的密码是什么?"); byte[]转化成中文字符串: string str = Encoding.UTF8.GetString(ping);