//string转byte数组
string str1 = "a";
byte[] array = System.Text.Encoding.ASCII.GetBytes(str1);
//byte数组转string
string s=System.Text.Encoding.ASCII.GetString(array);//这里的array就是存放ASCII的byte数组

char与ASCII转换:

//char转ASCII
int asc = (int)'a';
//ASCII转char
char ASCIIstr1 = Convert.ToChar(asc);

2. unicode

Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。目前的Unicode字符分为17组编排,0x0000 至 0x10FFFF,每组称为平面(Plane),而每平面拥有65536个码位,共1114112个。

string与byte数组转化:

//string转Unicode byte数组
string str = "aaa";
byte[] byt =  System.Text.Encoding.Unicode.GetBytes(str);
//Unicode byte数组转string
str = System.Text.Encoding.Unicode.GetString(byt);

3. utf-8

UTF-8用1到6个字节编码Unicode字符。 UTF-8编码可以通过屏蔽位和 移位 操作快速读写。 常见的UTF格式有:UTF-7, UTF-7.5, UTF-8, UTF-16 , 以及 UTF-32

UTF-8编码规则:如果只有一个字节则其最高二进制位为0;如果是多字节,其第一个字节从最高位开始,连续的二进制位值为1的个数决定了其编码的字节数,其余各字节均以10开头。

string与byte数组转化:

//string转utf-8 byte数组
string str = "aaa";
byte[] byt = System.Text.Encoding.UTF8.GetBytes(str);
//utf-8 byte数组转string
str = System.Text.Encoding.UTF8.GetString(byt);

4. gb2312

GB2312编码适用于汉字处理、汉字通信等系统之间的信息交换,通行于中国大陆;新加坡等地也采用此编码。中国大陆几乎所有的中文系统和国际化的软件都支持GB 2312。

UTF-8编码与gb2312之间转化(中间有byte数组与string转化):

/// <summary>
/// GB2312转换成UTF8
/// </summary>
/// <param name="text"></param>
/// <returns></returns>
public static string gb2312_utf8(string text)
    //声明字符集   
    System.Text.Encoding utf8, gb2312;
    //gb2312   
    gb2312 = System.Text.Encoding.GetEncoding("gb2312");
    //utf8   
    utf8 = System.Text.Encoding.GetEncoding("utf-8");
    byte[] gb;
    gb = gb2312.GetBytes(text);
    gb = System.Text.Encoding.Convert(gb2312, utf8, gb);
    //返回转换后的字符   
    return utf8.GetString(gb);
/// <summary>
/// UTF8转换成GB2312
/// </summary>
/// <param name="text"></param>
/// <returns></returns>
public static string utf8_gb2312(string text)
    //声明字符集   
    System.Text.Encoding utf8, gb2312;
    //utf8   
    utf8 = System.Text.Encoding.GetEncoding("utf-8");
    //gb2312   
    gb2312 = System.Text.Encoding.GetEncoding("gb2312");
    byte[] utf;
    utf = utf8.GetBytes(text);
    utf = System.Text.Encoding.Convert(utf8, gb2312, utf);
    //返回转换后的字符   
    return gb2312.GetString(utf);

5.GBK

GBK是采用单双字节变长编码,英文使用单字节编码,完全兼容ASCII字符编码,中文部分采用双字节编码。

string与byte数组转化:

//string转GBK byte数组
string str = "aa";
System.Text.Encoding gbk = System.Text.Encoding.GetEncoding("GBK");
byte[] byt = gbk.GetBytes(str);
//GBK byte数组转string
str = gbk.GetString(byt);

十进制与十六进制相互转换:

 //十进制转十六进制
string hex = "";
int dec = 125;
if(x > 255)
     hex = dec.ToString("X4");
     hex = dec.ToString("X2");
//十六进制转十进制
dec = int.Parse(hex, System.Globalization.NumberStyles.AllowHexSpecifier);
目前计算机中用得最广泛的字符集及其编码 : ASCII,unicode,utf8,gb2312,gbk等详细介绍就篇幅太大了,本篇文章只是简单介绍以及常用转换1.ASCII C#中string与ASCII byte数组转换://string转byte数组string str1 = &quot;a&quot;;byte[] array = System.Text.Encoding.ASCII.GetBytes(st...
今天由于项目从Window转MAC的需要,对本地lua脚本文件进行格式转换,将全部.lua脚本文件的格式由UTF8有BOM转化为无BOM格式,一下是编辑器功能脚本,需要的朋友可以借鉴一下: using UnityEngine; using UnityEditor; using System.IO; using System.Text; /// 这个是讲lua文件转化为UTF-8格式的
1.String.Length,String.ToCharArray,StringInfo,Encoding.UTF8.GetByteCount的区别: String.Length:获取的是字符串中Char的数量,而不是Unicode字符的数量 String.ToCharArray也是将string转换成Char数组。 StringInfo:若要获取字符串中的Unicode字符数量,而需要使用“System.Globalization.StringInfo” GetByteCount:获取字符串的字
using System.Linq; using System.Runtime.Serialization.Formatters.Binary; using System.Text; using System.Threading.Tasks; namespace A...
Unity3D 中解析 JSON 可以使用 JsonUtility 类,该类提供了从 JSON 字符串到 C# 对象的转换和从 C# 对象到 JSON 字符串的转换方法。 下面是一个示例代码,演示如何使用 JsonUtility 解析 JSON 字符串: ```csharp // 定义一个 C# 对象 [Serializable] public class Person { public string name; public int age; // 定义一个 JSON 字符串 string json = "{\"name\":\"John\",\"age\":30}"; // 将 JSON 字符串转换C# 对象 Person person = JsonUtility.FromJson<Person>(json); // 输出结果 Debug.Log(person.name); // John Debug.Log(person.age); // 30 需要注意的是,JsonUtility 只能解析符合 Unity3D JSON 格式的字符串,而不是标准的 JSON 格式,因此它在某些情况下可能会有限制。如果您需要更强大的 JSON 解析功能,可以考虑使用第三方 JSON 库,例如 Newtonsoft.Json。