如何在Turbo C ++中使用Unicode

问题描述 投票:0回答:1

如何在Turbo C ++中使用Unicode符号?我特别想要上标和下标符号。

我必须使用过时的turbo c ++,因为这是我学校提供的,我必须在项目中使用它。

c++ unicode subscript turbo-c++ superscript
1个回答
0
投票

如前所述,turbo C ++无法直接访问unicode。可能是因为它太旧了,甚至无法生成可以使用系统库(DLL)的代码,所以-即使通过手工重新创建头文件,您也无法调用wprintf,该文件可以正确输出甚至在奥术cmd终端上也使用unicode,直到今天,Microsoft还是附带Windows。

但是,在cmd终端中使用的默认字符编码支持一些非ASCII字符-这完全取决于您操作系统的语言(语言环境)配置。 (例如,对于西欧语言,通常为"cp-852"-如果您的Windows是英语,则通常为CP-850。

[这些旧的8位charmap编码都不包含所有十位数字作为上标-但您可能有一些可用的数字(例如,cp 850具有“¹,²,³”功能)。

因此,您可以检查终端代码页,并在Wikipedia上查看其代码-您可以使用Windows终端上的chcp命令检查和更改当前代码页。如果Windows版本支持涵盖所有可打印unicode字符的“ utf-8”,则必须在终端上键入chcp 65001。 (我不知道哪个Windows版本支持该功能,也不知道您使用的是哪个版本)。

一旦您设法做到这一点,您所要做的就是使用字符串的字符的“ \ xHH”编码来打印utf-8中的超级脚本数字的字节序列(我不确定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代码段生成的:)

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')}")

© www.soinside.com 2019 - 2024. All rights reserved.