C# 如何将整数格式化为ASCII/Unicode字符(而不只是转换为字符)

C# 如何将整数格式化为ASCII/Unicode字符(而不只是转换为字符),c#,C#,有没有办法将整数格式化为C#中等效的ASCII/Unicode字符?例如,如果我有以下代码: int n = 65; string format = ""; // what? string s = string.Format(format, n); 我需要在字符串格式中输入什么才能将单个字符“a”写入s——基本上,我正在寻找在C中执行以下操作的等效方法: int n = 65; char s[2]; char format = "%c"; sprintf(s, format, n); /*

有没有办法将整数格式化为C#中等效的ASCII/Unicode字符?例如,如果我有以下代码:

int n = 65;
string format = ""; // what?

string s = string.Format(format, n);
我需要在字符串
格式中输入什么才能将单个字符“a”写入
s
——基本上,我正在寻找在C中执行以下操作的等效方法:

int n = 65;
char s[2];
char format = "%c";

sprintf(s, format, n); /* s <- 'A' */
要想得到一个角色,你可以直接施放:

char c = (char) n;
如果您需要将其作为字符串获取,可以调用
ToString

string x = c.ToString();
这可以接受吗

string a = Char.ConvertFromUtf32(65);

Console.WriteLine(a); //prints 'A'

您可以将
int
转换为
char

string s = ((char)n).ToString();

无法告诉
string.Format
将整数格式化为字符。没有任何字符串或数字格式的字符串对此有所帮助

您当前的解决方案简单有效,因此您应该保留它,除非您开始使用更复杂的选项。如果发生这种情况,您可能需要引入一个抽象,该抽象将返回正确的国家/地区表示(例如,将保存国家/地区的
CountryCheckDigitFormatter
,以及每个国家/地区的自定义
ToString
方法)。

简单:

int i = 65;
char c = Convert.ToChar(i);

这不是一个重复的问题吗?为什么不为转换设置一个
字典
?每个国家一个?@Oded我不太确定你在设想什么,但支票数字不是每个国家的;格式按国家/地区而定,但支票数字根据银行账户的不同而不同,因此需要对其进行格式化和打印。您能举几个例子吗?我一点也不清楚。我不确定这是否完全正确。ConvertFromUtf32是否等于(char)x?我不这么认为。@usr好吧,这是一个可怕的命名方法,它应该类似于
String.fromCodePoint
。它给出了一个字符串,其中包含来自unicode整数代码点的字符,这似乎是OP想要的。另外,
(char)x
无法处理BMP之外的内容,因为它们需要2个字符才能在UTF16中编码。请看,我的编辑-转换为char并不是解决我特定问题的方法。否决票不是我-这确实是不公平的!(我的评论也不是100%适用于你的答案——我把它添加到了另外两个答案中,但它只适用于你的答案;反垃圾邮件,我猜)看,我的编辑转换到char并不是解决我特定问题的方法
string s = ((char)n).ToString();
int i = 65;
char c = Convert.ToChar(i);