python3 bytes转字符串的问题

python3 bytes转字符串的问题,第1张

s = '\xE6\x88\x90\xE5\x8A\x9F'
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

local t = {112,113,114,115}
print(stringchar(unpack(t)))

根据你的lua实际版本决定unpack怎么使用

16进制与字符串、字节数组之间的转换
在串口通讯过程中,经常要用到 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


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13375471.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-24
下一篇 2023-07-24

发表评论

登录后才能评论

评论列表(0条)

保存