我如何转换string为byte[]在.NET(C#),而无需手动指定一个特定的编码?
我要加密字符串.我可以在不转换的情况下加密它,但我仍然想知道为什么编码在这里发挥作用.
另外,为什么要考虑编码?我不能简单地得到字符串存储的字节数吗?为什么依赖于字符编码?
我的问题是如何转换,
string s = "Hello World";
进入
byte b = {0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x57, 0x6F, 0x72, 0x6C, 0x64};
如果在 C# .NET Core 中有一个简单的方法,那么它将非常有帮助。
我遇到了一个奇怪的案例,其中一段代码旨在从 MSFT Azure Phrase Breaker 处理一段文本后清除空白字符串、句号破折号等。我可以使用帮助找出如何调试问题。
以下代码块true在给定值时返回""。显然期望是方法应该false在第一条if语句之后返回。在要查看的 899 个短语中,似乎只有两个有这个问题。也发生在另一台机器上。
public static bool IsSentenceTranslatable(string sentence)
{
string trimmedSentence = sentence.Trim();
if (string.IsNullOrEmpty(trimmedSentence) || string.IsNullOrWhiteSpace(trimmedSentence))
{
return false;
}
switch (trimmedSentence)
{
case " ":
case ".":
case "-":
case "·":
return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
这是调试器的快照。
它可能是 Visual Studio 或 .NET 中的错误吗?我尝试使用各种可视化工具,但仍然看不到盒子里的任何东西。.NET 4.5 C# 7.3
我需要在 .NET Core 应用程序中获取 Windows 默认代码页。即英语系统上为 1252、西里尔语系统上为 1251、希腊语系统上为 1253 等。以前在 .NET Framework 4 和 Mono 中,可以通过 Encoding.Default 轻松完成。程序迁移到.NET Core 3.1后,现在需要在每台PC上手动设置代码页号。这对于某些用户来说并不容易。
如何返回旧(系统)代码页的自动检测?无法读取 Windows 注册表来检测系统设置,因为应用程序还应该在 Linux 上运行,并使用从 Windows PC 接收(或发送到 Windows PC)的外部数据。
其他使用ANSI代码页进行数据输入和输出的软件不能被重写。
也许 OEM 代码页也很有趣(为了与控制台软件无缝交互,该软件甚至仍然使用 DOS 代码页)。
我有一个字符串,
string Var="11001100"
Run Code Online (Sandbox Code Playgroud)
我想将其转换为字节数组.
bArray[0]=0x00;
bArray[1]=0x00;
bArray[2]=0x01;
bArray[3]=0x01;
bArray[4]=0x00;
bArray[5]=0x00;
bArray[6]=0x01;
bArray[7]=0x01;
Run Code Online (Sandbox Code Playgroud)
有人可以指导我吗?我尝试了以下代码,但我得到了ASCII数据.我不要那个.
bArray = Encoding.Default.GetBytes(var);
Run Code Online (Sandbox Code Playgroud) 我需要将字符串转换为十六进制表示的字节数组。例如:
值:06000002 我需要的是:
30 36 30 30 30 30 30 32
Run Code Online (Sandbox Code Playgroud)
我尝试将所有字符隐式转换为字节,如下所示:
byte[] bytes = new byte[daten.Length];
for (int i = 0; i < daten.Length; i++)
{
int value = Convert.ToInt32(daten[i]);
bytes[i] = (byte)daten[i];
}
Run Code Online (Sandbox Code Playgroud)
但是我总是得到这个结果:
48 54 48 48 48 48 48 50
Run Code Online (Sandbox Code Playgroud)
我不需要字符串形式的结果!我需要它作为字节数组!
如何达到这个目标?
我在阅读时出现错误:
无法将类型'String'隐式转换为'Byte []'
我认为'byte []'是字节数组-如果不是,请更正我。
我在此网站上尝试了另一种解决方案,但我不理解。我正在制作ac#“ RTM工具”,这是放在里面的内容:
byte[] bytes = (metroTextBox2.Text);
Array.Resize<byte>(ref bytes, bytes.Length + 1);
PS3.SetMemory(0x2708238, bytes);
Run Code Online (Sandbox Code Playgroud) 如何在不使用每个元素的情况下将字符串转换"0100"为byte数组?该字符串只能包含字符0到9.{0,1,0,0}Convert.ToByte()