b = bytes(map(ord,s))
s1 = bdecode('utf-8')
print(s1)
可以用String的构造方法String(byte[] bytes,int offset,int length),或者普通的构造方法String(byte[] bytes),用法如下:
public class ByteArrayToString {public static void main(String[] args) {
byte[] bytes=new byte[]{'a','b','c','d','e','f','g'};
byteArrayToString(bytes,null);//输出abcdefg
byteArrayToString(bytes, "2");//输出cdefg
}
public static String byteArrayToString(byte[] bytes,String offset){
String str="";
if(offset!=null){
str = new String(bytes,IntegerparseInt(offset),5);//这个方法可以精确的截取字符串
}else{
str= new String(bytes);//普通的字符串构造方法
}
Systemoutprintln(str);
return str;
}
}String str=new String(byte);
或者
String str=new String(byte,"字符集");
字符集一般有UTF-8、GBK等
一般来说,就是用stringchar
但是不需要循环 你可以直接将一大串东西直接转化成char
print(stringchar(112,113,114,115))如果你的值是在一个table里 你可以使用unpack
print(stringchar(unpack(t)))
根据你的lua实际版本决定unpack怎么使用
在串口通讯过程中,经常要用到 16进制与字符串、字节数组之间的转换
/// <summary>
/// 字符串转16进制字节数组
/// </summary>
/// <param name="hexString"></param>
/// <returns></returns>
private static byte[] strToToHexByte(string hexString)
{
hexString = hexStringReplace(" ", "");
if ((hexStringLength % 2) != 0)
hexString += " ";
byte[] returnBytes = new byte[hexStringLength / 2];
for (int i = 0; i < returnBytesLength; i++)
returnBytes[i] = ConvertToByte(hexStringSubstring(i 2, 2), 16);
return returnBytes;
}
字节数组转16进制字符串
/// <summary>
/// 字节数组转16进制字符串
/// </summary>
/// <param name="bytes"></param>
/// <returns></returns>
public static string byteToHexStr(byte[] bytes)
{
string returnStr = "";
if (bytes != null)
{
for (int i = 0; i < bytesLength; i++)
{
returnStr += bytes[i]ToString("X2");
}
}
return returnStr;
}
从汉字转换到16进制
/// <summary>
/// 从汉字转换到16进制
/// </summary>
/// <param name="s"></param>
/// <param name="charset">编码,如"utf-8","gb2312"</param>
/// <param name="fenge">是否每字符用逗号分隔</param>
/// <returns></returns>
public static string ToHex(string s, string charset, bool fenge)
{
if ((sLength % 2) != 0)
{
s += " ";//空格
//throw new ArgumentException("s is not valid chinese string!");
}
SystemTextEncoding chs = SystemTextEncodingGetEncoding(charset);
byte[] bytes = chsGetBytes(s);
string str = "";
for (int i = 0; i < bytesLength; i++)
{
str += stringFormat("{0:X}", bytes[i]);
if (fenge && (i != bytesLength - 1))
{
str += string
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)