ASCII表和字符串

时间:2018-10-21 10:20:40

标签: c#

尝试使用ASCII表构建字符串。我本来希望将黑色正方形定位在219位,但遇到字符U。为什么?

static void Main(string[] args)
{
    string d = "";
    d += (char)219;
    Console.WriteLine(d);
    Console.ReadLine();
}

2 个答案:

答案 0 :(得分:2)

(char)219;不会转换为ASCII

如果要将数字设为ASCII,可以尝试使用Encoding.ASCII.GetString来获取ASCII的值。

Encoding.ASCII.GetString(new byte[]{127});

注意

Encoding.ASCII不提供错误检测。大于127的任何字节都会被解码为Unicode问号?

答案 1 :(得分:2)

ASCII是7位编码,既不包含黑色正方形,也不包含值为219的字符(ASCII最高值为127)。 要获得黑色正方形,可以使用Unicode文字:

d += (char)'\u25A0';

有关Unicode字符,请参见https://unicode-table.com/en/search/?q=black+square;有关Unicode文字语法,请参见https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/char