from - Cómo obtener el valor ASCII de la cadena en C#
convertir texto a codigo ascii en c# (13)
Quiero obtener el valor ASCII de los caracteres en una cadena en C #.
Si mi cadena tiene el valor "9quali52ty3", quiero una matriz con los valores ASCII de cada uno de los 11 caracteres.
¿Cómo puedo obtener valores ASCII en C #?
¿Quiere decir que solo quiere los caracteres alfabéticos y no los dígitos? Entonces, ¿quieres "calidad" como resultado? Puede usar Char.IsLetter o Char.IsDigit para filtrarlos uno por uno.
string s = "9quali52ty3";
StringBuilder result = new StringBuilder();
foreach(char c in s)
{
if (Char.IsLetter(c))
result.Add(c);
}
Console.WriteLine(result); // quality
Desde MSDN
string value = "9quali52ty3";
// Convert the string into a byte[].
byte[] asciiBytes = Encoding.ASCII.GetBytes(value);
Ahora tiene una matriz del valor ASCII de los bytes. Obtuve lo siguiente:
57 113 117 97 108 105 53 50 116 121 51
Este programa aceptará más de un carácter y generará su valor ASCII:
using System;
class ASCII
{
public static void Main(string [] args)
{
string s;
Console.WriteLine(" Enter your sentence: ");
s = Console.ReadLine();
foreach (char c in s)
{
Console.WriteLine((int)c);
}
}
}
Esto debería funcionar:
string s = "9quali52ty3";
byte[] ASCIIValues = Encoding.ASCII.GetBytes(s);
foreach(byte b in ASCIIValues) {
Console.WriteLine(b);
}
Los que respondieron anteriormente respondieron la pregunta, pero no me proporcionaron la información que el título me llevó a esperar. Tenía un método que devolvía una cadena de un carácter, pero quería un carácter que pudiera convertir a hexadecimal. El siguiente código demuestra lo que pensé que encontraría con la esperanza de que sea útil para otros.
string s = "/ta£/x0394/x221A"; // tab; lower case a; pound sign; Greek delta;
// square root
Debug.Print(s);
char c = s[0];
int i = (int)c;
string x = i.ToString("X");
c = s[1];
i = (int)c;
x = i.ToString("X");
Debug.Print(c.ToString() + " " + i.ToString() + " " + x);
c = s[2];
i = (int)c;
x = i.ToString("X");
Debug.Print(c.ToString() + " " + i.ToString() + " " + x);
c = s[3];
i = (int)c;
x = i.ToString("X");
Debug.Print(c.ToString() + " " + i.ToString() + " " + x);
c = s[4];
i = (int)c;
x = i.ToString("X");
Debug.Print(c.ToString() + " " + i.ToString() + " " + x);
El código anterior muestra lo siguiente en la ventana inmediata:
a£Δ√
a 97 61
£ 163 A3
Δ 916 394
√ 8730 221A
O en LINQ:
string value = "9quali52ty3";
var ascii_values = value.Select(x => (int)x);
var as_hex = value.Select(x => ((int)x).ToString("X02"));
Puede eliminar la BOM usando:
//Create a character to compare BOM
char byteOrderMark = (char)65279;
if (sourceString.ToCharArray()[0].Equals(byteOrderMark))
{
targetString = sourceString.Remove(0, 1);
}
Quiero obtener el valor ASCII de los caracteres en una cadena en C #.
Todos confieren respuesta en esta estructura. Si mi cadena tiene el valor "9quali52ty3", quiero una matriz con los valores ASCII de cada uno de los 11 caracteres.
pero en la consola trabajamos con franqueza, así que obtenemos un carácter e imprimimos el código ASCII si me equivoco, así que por favor corrija mi respuesta.
static void Main(string[] args)
{
Console.WriteLine(Console.Read());
Convert.ToInt16(Console.Read());
Console.ReadKey();
}
Si desea el código de cada carácter en la cadena, podría hacer algo como esto:
char[] chars = "9quali52ty3".ToCharArray();
byte[] asciiBytes = Encoding.ASCII.GetBytes("Y");
foreach (byte b in asciiBytes)
{
MessageBox.Show("" + b);
}
string s = "9quali52ty3";
foreach(char c in s)
{
Console.WriteLine((int)c);
}
string text = "ABCD";
for (int i = 0; i < text.Length; i++)
{
Console.WriteLine(text[i] + " => " + Char.ConvertToUtf32(text, i));
}
Si recuerdo correctamente, el valor ASCII es el número de los siete bits más bajos del número Unicode .
string value = "mahesh";
// Convert the string into a byte[].
byte[] asciiBytes = Encoding.ASCII.GetBytes(value);
for (int i = 0; i < value.Length; i++)
{
Console.WriteLine(value.Substring(i, 1) + " as ASCII value of: " + asciiBytes[i]);
}