//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);
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);
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);
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);
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 = "a";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。