首页 / 知识
关于bytearray:使用C#,将包含二进制数据的字符串转换为字节数组的最有效方法是什么
2023-04-15 22:09:00

Using C#, what is the most efficient method of converting a string containing binary data to an array of bytes虽然有100种方法可以解决转换问题,但我将重点放在性能上。 假设该字符串仅包含二进制数据,就性能而言,在C#下将数据转换为byte [](不是char [])的最快方法是什么? 说明:这不是ASCII数据,而是恰好在字符串中的二进制数据。 UTF8Encoding.GetBytes 我不确定ASCIIEncoding.GetBytes是否会这样做,因为它仅支持范围0x0000到0x007F。 您告诉该字符串仅包含字节。但是.NET字符串是一个char数组,而1个char是2个字节(因为.NET将字符串存储为UTF16)。因此,可以有两种情况来存储字节0x42和0x98: 在第一种情况下,结果将是0x42和0x3F(" B?"的ASCII码)。第二种情况将导致0x3F("?"的ascii)。这是合乎逻辑的,因为char超出有效的ascii范围,并且编码器不知道如何处理这些值。 所以我想知道为什么它是一个带有字节的字符串?
如果确实有情况2,并且想从中取出字节,则应该使用UnicodeEncoding.GetBytes调用。因为那将返回0x42和0x98。 如果要从char数组转换为byte数组,最快的方法是封送处理。但这不是很好,并且使用双内存。
如果要从字符串转换为二进制数据,则必须首先知道使用哪种编码将二进制数据转换为字符串。否则,您可能无法获得正确的二进制数据。因此,最有效的方法可能是Encoding子类上的GetBytes()(例如UTF8Encoding),但是您必须确定要知道哪种编码。 Kent Boogaart对原始问题的评论很好地总结了这一点。 ;] C#中没有ASCII字符串!字符串始终包含UTF-16。不意识到这一点会导致很多问题。就是说,前面提到的方法是有效的,因为它们将字符串视为UTF-16编码,并将字符转换为ASCII符号。
/ EDIT作为澄清:二进制数据如何进入字符串?字符串不应该包含二进制数据(为此使用 |
最新内容
相关内容
字符串查找命令linux?
字符串查找命令linux?,系统,字符串,工具,信息,文件,命令,字符,选项,文本,范本,如何在Linux下查找文件内容包含某个特定字符串的文件在linux中glinux恢复数据库命令?
linux恢复数据库命令?,工具,系统,软件,数据,盘中,密码,命令,备份,数据库,文件,linux如何恢复删除的文件1、接下来小编就给大家带来linux恢复误linux储存命令数据?
linux储存命令数据?,系统,工作,地址,信息,标准,命令,工具,实时,数据,分析,linux常用命令1、linux系统常用操作命令如下:ls:全拼list,功能是列出目linux储存命令数据?
linux储存命令数据?,系统,工作,地址,信息,标准,命令,工具,实时,数据,分析,linux常用命令1、linux系统常用操作命令如下:ls:全拼list,功能是列出目linux命令替换字符串?
linux命令替换字符串?,字符串,文件,批量,首次,数据,命令,内容,方法,用字,结尾,linux下批量查询文件内容字符串并替换一)通过vi编辑器来替换。vilinux命令大全数据库?
linux命令大全数据库?,服务,系统,平台,状态,软件,通用,环境,数据,神州,地址,在Linux上用命令怎么连接数据库(linux连接oracle数据库命令)登录linux上数据库的命令?
linux上数据库的命令?,服务,系统,信息,地址,命令,密码,工具,管理,数据,单位,在Linux上用命令怎么连接数据库(linux连接oracle数据库命令)1、登linux命令dm数据库?
linux命令dm数据库?,地址,软件,时间,设备,名字,服务,位置,名称,公司,命令,linux创建dm数据库超时linux/sys下无法新建 方法如下打开c盘,在用户linux拼接字符串命令?
linux拼接字符串命令?,系统,工作,代码,工具,名称,信息,地址,时间,数据,命令,linux中用shell时奇怪的字符串拼接和时间计算问题如果想要在变量linux使用命令的方法?
linux使用命令的方法?,系统,信息,工具,标准,数据,命令,左下角,目录,文件夹,图标,linux的cd命令的使用方法1、cd ~:回到用户家目录。注:这得看你linux存储数据命令?
linux存储数据命令?,系统,管理,数据,设备,情况,地址,工作,命令,服务,平台,Linux文件系统操作命令1、cat:可以显示文件的内容(经常和more搭配使linux数据库查找命令?
linux数据库查找命令?,位置,名称,状态,服务,软件,信息,系统,命令,名字,密码,在linux中如何用命令查找文件在哪使用查找命令 “find”命令允许