如前所述,Turbo C++ 不会让您直接访问 Unicode。它可能太旧了,甚至无法生成可用于使用系统库 (DLL) 的代码,因此 - 即使手动重新创建头文件,您也无法调用可以正确输出的 wprintf Unicode 甚至在神秘的 cmd 终端上,微软至今仍随 Windows 一起发布。
但是,cmd 终端中使用的默认字符编码支持一些非 ASCII 字符 - 这完全取决于您的操作系统的语言(区域设置)配置。 (例如,对于西欧语言,它通常是 "cp-852" - 虽然它可以是 CP 850,如果您的 Windows 是英文的话。
这些传统的 8 位字符映射编码都不会包含所有十位数字作为上标 - 但您可能有一些可用的(例如,CP 850 功能“¹,²,³”)。
因此,您可以检查终端代码页,并在 Wikipedia 上查看其代码 - 您可以在 Windows 终端中使用 chcp 命令检查和更改当前代码页。如果您的 Windows 版本支持 UTF-8,它涵盖了所有可打印的 Unicode 字符,您必须在终端中键入 chcp 65001。 (我不知道哪些 Windows 版本支持该功能,也不知道您使用的是哪个版本。)
一旦你设法做到这一点,你所需要的就是打印 UTF-8 中上标数字的字节序列,对字符串中的字符使用“\xHH”编码(我不确定 Turbo C++ 将允许它。否则,`printf ("%c%c", 0xHH, 0xHH) 将起作用。)
为了您的方便,我附上了上标的代码点和 UTF-8 编码:
0x00B2: SUPERSCRIPT TWO - ² - utf-8 seq: b'\xc2\xb2'
0x00B3: SUPERSCRIPT THREE - ³ - utf-8 seq: b'\xc2\xb3'
0x00B9: SUPERSCRIPT ONE - ¹ - utf-8 seq: b'\xc2\xb9'
0x0670: ARABIC LETTER SUPERSCRIPT ALEF - ٰ - utf-8 seq: b'\xd9\xb0'
0x0711: SYRIAC LETTER SUPERSCRIPT ALAPH - ܑ - utf-8 seq: b'\xdc\x91'
0x2070: SUPERSCRIPT ZERO - ⁰ - utf-8 seq: b'\xe2\x81\xb0'
0x2071: SUPERSCRIPT LATIN SMALL LETTER I - ⁱ - utf-8 seq: b'\xe2\x81\xb1'
0x2074: SUPERSCRIPT FOUR - ⁴ - utf-8 seq: b'\xe2\x81\xb4'
0x2075: SUPERSCRIPT FIVE - ⁵ - utf-8 seq: b'\xe2\x81\xb5'
0x2076: SUPERSCRIPT SIX - ⁶ - utf-8 seq: b'\xe2\x81\xb6'
0x2077: SUPERSCRIPT SEVEN - ⁷ - utf-8 seq: b'\xe2\x81\xb7'
0x2078: SUPERSCRIPT EIGHT - ⁸ - utf-8 seq: b'\xe2\x81\xb8'
0x2079: SUPERSCRIPT NINE - ⁹ - utf-8 seq: b'\xe2\x81\xb9'
0x207A: SUPERSCRIPT PLUS SIGN - ⁺ - utf-8 seq: b'\xe2\x81\xba'
0x207B: SUPERSCRIPT MINUS - ⁻ - utf-8 seq: b'\xe2\x81\xbb'
0x207C: SUPERSCRIPT EQUALS SIGN - ⁼ - utf-8 seq: b'\xe2\x81\xbc'
0x207D: SUPERSCRIPT LEFT PARENTHESIS - ⁽ - utf-8 seq: b'\xe2\x81\xbd'
0x207E: SUPERSCRIPT RIGHT PARENTHESIS - ⁾ - utf-8 seq: b'\xe2\x81\xbe'
0x207F: SUPERSCRIPT LATIN SMALL LETTER N - ⁿ - utf-8 seq: b'\xe2\x81\xbf'
0xFC5B: ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM - ﱛ - utf-8 seq: b'\xef\xb1\x9b'
0xFC5C: ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM - ﱜ - utf-8 seq: b'\xef\xb1\x9c'
0xFC5D: ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM - ﱝ - utf-8 seq: b'\xef\xb1\x9d'
0xFC63: ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM - ﱣ - utf-8 seq: b'\xef\xb1\xa3'
0xFC90: ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM - ﲐ - utf-8 seq: b'\xef\xb2\x90'
0xFCD9: ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM - ﳙ - utf-8 seq: b'\xef\xb3\x99'
(这是在交互模式下使用以下 Python sn-p 生成的:)
import unicodedata
for i in range(0, 0x10ffff):
char = chr(i)
try:
name = unicodedata.name(char)
except ValueError:
pass
if "SUPERSCRIPT" not in name:
continue
print(f"0x{i:04X}: {name} - {char} - utf-8 seq: {char.encode('utf-8')}")