如何将字符串转换为ASCII

问题描述 投票:19回答:6

如何转换每个字母在一个字符串的ASCII字符值?

c# string ascii
6个回答
24
投票

.NET存储所有字符串作为的UTF-16代码单元的序列。 (这是足够接近“Unicode字符”对于大多数的目的。)

幸运的是,统一的设计,使得ASCII值映射到Unicode中相同的号码,所以你已经转换每个字符为整数后,你可以检查它是否是在ASCII范围。请注意,您可以使用来自char的隐式转换到int - 有没有需要调用一个转换方法:

string text = "Here's some text including a \u00ff non-ASCII character";
foreach (char c in text)
{
    int unicode = c;
    Console.WriteLine(unicode < 128 ? "ASCII: {0}" : "Non-ASCII: {0}", unicode);
}

17
投票

任何字符串试试这个:

string s = Console.ReadLine();
foreach( char c in s)
{
    Console.WriteLine(System.Convert.ToInt32(c));
}
Console.ReadKey();

12
投票

这很简单:

string s = "ABCD";
byte[] bytes = Encoding.ASCII.GetBytes(s);
int result = BitConverter.ToInt32(bytes, 0);

现在,你必须为所有的字节和编码intresult数组。如果您需要回去了,你可以去为:

int i = result;
byte[] bytes2 = BitConverter.GetBytes(i);
string s2 = Encoding.ASCII.GetString(bytes);

2
投票

尝试的LINQ:

Result = string.Join("", input.ToCharArray().Where(x=> ((int)x) < 127));

这将过滤掉所有非ASCII字符。现在,如果你想要一个等价的,请尝试以下操作:

Result = string.Join("", System.Text.Encoding.ASCII.GetChars(System.Text.Encoding.ASCII.GetBytes(input.ToCharArray())));

0
投票

使用Convert.ToInt32()进行转换。你可以看看How to convert string to ASCII value in C#ASCII values


-1
投票

我觉得这个代码可以帮助你:

string str = char.ConvertFromUtf32(65)
© www.soinside.com 2019 - 2024. All rights reserved.