如何将整数值转换为char,例如97应打印为'a'

Dai*_*mic 2 f#

我有一个表示字符数的整数值数组.我想将字符值打印为字母后跟计数

例如,0数组成员作为字母'a'的计数,依此类推.

Van*_*oiy 5

从技术上讲,这个问题尚未定义.let f _ = 'a'这将是一个正确的答案.我们需要知道所需的编码.但我认为可以安全地假设你正在谈论以下编码之一,充满了领先的零位:

  • ASCII
  • UTF-8
  • UTF-16
  • 一些8b扩展的ASCII变体

或者,如果您对.NET字符究竟是什么有一个共同的误解,那么您可能意味着UTF-32.但是不可能将UTF-32 int可以表示的所有字符转换为单个char.该char类型实际上被定义为UTF-16代码单元.

无论如何,如果我们忽略所使用的空间量,所有这些都将'a'编码为97.

以下是一些工具:

  • char 将数字输入转换为UTF-16,这是.NET中chars使用的内部编码.
  • 查看System.Text命名空间System.Text.Encoding以获取各种解码工具,包括读取UTF-8.
  • ASCII包含在Unicode代码点中,因此也可以通过上述方式进行转换 - 如果输入字符始终在ASCII范围内,即除了最低有效7位以外的所有字符都归零.
  • 对于过时的,与文化相关的8位编码,请寻找适当的编码工具,与上面类似.虽然在这个时代使用它们是值得怀疑的.
  • System.Char.ConvertFromUtf32为您提供一个包含UTF-32最多两个字符的字符串.