2013-07-28 19 views

Odpowiedz

22

Zapoznaj się z artykułem wikipedii Unicode subscripts and superscripts. Wygląda na to, że są one rozłożone na różne zakresy i nie wszystkie postacie są dostępne.

skonsolidowana w celu cięcia i wklejenie, Unicode średnia określa całkowitą Sub- i super-skrypty cyfr i symboli typowych matematyczne (⁰ đ ² ł ⁴ ⁵ ⁶ ⁷ ⁸ ⁹ ⁺ ⁻ ⁼ ⁽⁾ ₀ ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉ ₊ ₋ ₌ ₍₎), pełny górny Łacińskiej małymi literami alfabetu wyjątkiem q ( ᵃ ᵇ ᶜ ᵈ ᵉ ᶠ ᵍ ʰ ⁱ ʲ ᵏ ˡ ᵐ ⁿ ᵒ ᵖ ʳ ˢ ᵗ ᵘ ᵛ ʷ ˣ ʸ ᶻ), ograniczoną wielkie litery alfabetu łacińskiego (ᴬ ᴮ ᴰ ᴱ ᴳ ᴴ ᴵ ᴶ ᴷ ᴸ ᴹ ᴺ ᴼ ᴾ ᴿ ᵀ ᵁ ⱽ ᵂ), a kilka indeksowaną małe litery (ₐ ₑ ₕ ᵢ ⱼ ₖ ₗ ₘ ₙ ₒ ₚ ᵣ ₛ ₜ ᵤ ᵥ ₓ ) oraz niektóre greckie litery (ᵅ ᵝ ᵞ ᵟ ᵋ ᶿ ᶥ ᶲ ᵠ ᵡ ᵦ ᵧ ᵨ ᵩ ᵪ). Pamiętaj, że ponieważ te glify pochodzą z różnych zakresów, mogą nie być tego samego rozmiaru i pozycji, w zależności od kroju pisma.

+6

Zastanawiam się, dlaczego nie ma kapitału C. Poza tym brakuje również kilku innych. – TylerM

+6

Brakuje ich tylko po to, aby was zdenerwować. – Vennsoh

+0

Najbardziej irytujący jest podwójny indeks górny 'iˣⁱ' .. to tak, jakby ktoś zadał sobie trud zrobienia tego glifu, ale zdecydował się przesunąć go dalej trochę na złość –

15

Możesz skopiować characters ze strony Wikipedii wymienionej w drugiej odpowiedzi. Następnie w pytona

characters = '⁰ ¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹ ⁺ ⁻ ⁼ ⁽ ⁾ ₀ ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉ ₊ ₋ ₌ ₍ ₎ ᵃ ᵇ ᶜ ᵈ ᵉ ᶠ ᵍ ʰ ⁱ ʲ ᵏ ˡ ᵐ ⁿ ᵒ ᵖ ʳ ˢ ᵗ ᵘ ᵛ ʷ ˣ ʸ ᶻ ᴬ ᴮ ᴰ ᴱ ᴳ ᴴ ᴵ ᴶ ᴷ ᴸ ᴹ ᴺ ᴼ ᴾ ᴿ ᵀ ᵁ ⱽ ᵂ ₐ ₑ ₕ ᵢ ⱼ ₖ ₗ ₘ ₙ ₒ ₚ ᵣ ₛ ₜ ᵤ ᵥ ₓ ᵅ ᵝ ᵞ ᵟ ᵋ ᶿ ᶥ ᶲ ᵠ ᵡ ᵦ ᵧ ᵨ ᵩ ᵪ' 
for c in characters.split(): 
    print(c + '=' + hex(ord(c))) 

⁰ = 0x2070 đ = 0xb9 ² = 0xb2 ł = 0xb3 ⁴ = 0x2074 ⁵ = 0x2075 ⁶ = 0x2076 ⁷ = 0x2077 ⁸ = 0x2078 ⁹ = 0x2079 ⁺ = 0x207a ⁻ = 0x207b ⁼ = 0x207c ⁽ = 0x207d⁾ = 0x207e

₀ = 0x2080 ₁ = 0x2081 ₂ = 0x2082 ₃ = 0x2083 ₄ = 0x2084 ₅ = 0x2085 ₆ = 0x2086 ₇ = 0x2087 ₈ = 0x2088 ₉ = 0x2089 ₊ = 0x208a ₋ = 0x208b ₌ = 0x208c ₍= 0x208d₎ = 0x208e

ᵃ = 0x1d43 ᵇ = 0x1d47 ᶜ = 0x1d9c ᵈ = 0x1d48 ᵉ = 0x1d49 ᶠ = 0x1da0 ᵍ = 0x1d4d ʰ = 0x2b0 ⁱ = 0x2071 ʲ = 0x2b2 ᵏ = 0x1d4f ˡ = 0x2e1 ᵐ = 0x1d50 ⁿ = 0x207f ᵒ = 0x1d52 ᵖ = 0x1d56 ʳ = 0x2b3 ˢ = 0x2e2 ᵗ = 0x1d57 = 0x1d58 ᵛ = 0x1d5b ʷ = 0x2b7 ˣ = 0x2e3 ʸ = 0x2b8 ᶻ = 0x1dbb

ᴬ = 0x1d2c ᴮ = 0x1d2e ᴰ = 0x1d30 ᴱ = 0x1d31 ᴳ = 0x1d33 ᴴ = 0x1d34 ᴵ = 0x1d35 ᴶ = 0x1d36 ᴷ = 0x1d37 ᴸ = 0x1d38 ᴹ = 0x1d39 ᴺ = 0x1d3a ᴼ = 0x1d3c ᴾ = 0x1d3e ᴿ = 0x1d3f ᵀ = 0x1d40 ᵁ = 0x1d41 ⱽ = 0x2c7d ᵂ = 0x1d42

ₐ = 0x2090 ₑ = 0x2091 ₕ = 0x2095 ᵢ = 0x1d62 ⱼ = 0x2c7c ₖ = 0x2096 ₗ = 0x2097 ₘ = 0x2098 ₙ = 0x2099 ₒ = 0x2092 ₚ = 0x209a ᵣ = 0x1d63 ₛ = 0x209b ₜ = 0x209c ᵤ = 0x1d64 ᵥ = 0x1d65 ₓ = 0x2093

ᵅ = 0x1d45 ᵝ = 0x1d5d ᵞ = 0x1d5e ᵟ = 0x1d5f ᵋ = 0x1d4b ᶿ = 0x1dbf ᶥ = 0x1da5 ᶲ = 0x1db2 ᵠ = 0x1d60 ᵡ = 0x1d61

ᵦ = 0x1d66 ᵧ = 0x1d67 ᵨ = 0x1d68 ᵩ = 0x1d69 ᵪ = 0x1d6a

+2

FYI - w przypadku kodu JavaScript sekwencja wejściowa ciągu znaków to \ uXXXX (gdzie XXXX jest czterocyfrową liczbą szesnastkową) –

+0

JavaScript odpowiednik: characters.split ('') .map (c => c.charAt (0) + '= U + '+ c.charCodeAt (0) .toString (16)) join (' ') – ChrisV

+0

Dlaczego ta odpowiedź nie jest akceptowana? Ten komentarz to arcydzieło! – xersi

2
import sys 
# on windows run from QtConsole for unicode 
# (Cmd console only support codepage characters) 
# At present (6/10/2017), superscripts/subscript chars 
# are best viewed with terminal/text-editor set to monospace font 
#  "DejaVu Sans Mono" 
# "Consolas" works also, but is missing a few characters... 
# and, "Courier" has the worst support at present... 

if int(sys.version[0]) != 3: 
    print('Aborted: Python 3.x required') 
    sys.exit(1) 

def table(): 
    unicode_map = { 
     #   superscript  subscript 
     '0'  : ('\u2070', '\u2080'  ), 
     '1'  : ('\u00B9', '\u2081'  ), 
     '2'  : ('\u00B2', '\u2082'  ), 
     '3'  : ('\u00B3', '\u2083'  ), 
     '4'  : ('\u2074', '\u2084'  ), 
     '5'  : ('\u2075', '\u2085'  ), 
     '6'  : ('\u2076', '\u2086'  ), 
     '7'  : ('\u2077', '\u2087'  ), 
     '8'  : ('\u2078', '\u2088'  ), 
     '9'  : ('\u2079', '\u2089'  ), 
     'a'  : ('\u1d43', '\u2090'  ), 
     'b'  : ('\u1d47', '?'   ), 
     'c'  : ('\u1d9c', '?'   ), 
     'd'  : ('\u1d48', '?'   ), 
     'e'  : ('\u1d49', '\u2091'  ), 
     'f'  : ('\u1da0', '?'   ), 
     'g'  : ('\u1d4d', '?'   ), 
     'h'  : ('\u02b0', '\u2095'  ), 
     'i'  : ('\u2071', '\u1d62'  ), 
     'j'  : ('\u02b2', '\u2c7c'  ), 
     'k'  : ('\u1d4f', '\u2096'  ), 
     'l'  : ('\u02e1', '\u2097'  ), 
     'm'  : ('\u1d50', '\u2098'  ), 
     'n'  : ('\u207f', '\u2099'  ), 
     'o'  : ('\u1d52', '\u2092'  ), 
     'p'  : ('\u1d56', '\u209a'  ), 
     'q'  : ('?',  '?'   ), 
     'r'  : ('\u02b3', '\u1d63'  ), 
     's'  : ('\u02e2', '\u209b'  ), 
     't'  : ('\u1d57', '\u209c'  ), 
     'u'  : ('\u1d58', '\u1d64'  ), 
     'v'  : ('\u1d5b', '\u1d65'  ), 
     'w'  : ('\u02b7', '?'   ), 
     'x'  : ('\u02e3', '\u2093'  ), 
     'y'  : ('\u02b8', '?'   ), 
     'z'  : ('?',  '?'   ), 
     'A'  : ('\u1d2c', '?'   ), 
     'B'  : ('\u1d2e', '?'   ), 
     'C'  : ('?',  '?'   ), 
     'D'  : ('\u1d30', '?'   ), 
     'E'  : ('\u1d31', '?'   ), 
     'F'  : ('?',  '?'   ), 
     'G'  : ('\u1d33', '?'   ), 
     'H'  : ('\u1d34', '?'   ), 
     'I'  : ('\u1d35', '?'   ), 
     'J'  : ('\u1d36', '?'   ), 
     'K'  : ('\u1d37', '?'   ), 
     'L'  : ('\u1d38', '?'   ), 
     'M'  : ('\u1d39', '?'   ), 
     'N'  : ('\u1d3a', '?'   ), 
     'O'  : ('\u1d3c', '?'   ), 
     'P'  : ('\u1d3e', '?'   ), 
     'Q'  : ('?',  '?'   ), 
     'R'  : ('\u1d3f', '?'   ), 
     'S'  : ('?',  '?'   ), 
     'T'  : ('\u1d40', '?'   ), 
     'U'  : ('\u1d41', '?'   ), 
     'V'  : ('\u2c7d', '?'   ), 
     'W'  : ('\u1d42', '?'   ), 
     'X'  : ('?',  '?'   ), 
     'Y'  : ('?',  '?'   ), 
     'Z'  : ('?',  '?'   ),   
     '+'  : ('\u207A', '\u208A'  ), 
     '-'  : ('\u207B', '\u208B'  ), 
     '='  : ('\u207C', '\u208C'  ), 
     '('  : ('\u207D', '\u208D'  ), 
     ')'  : ('\u207E', '\u208E'  ),   
     ':alpha' : ('\u1d45', '?'   ), 
     ':beta' : ('\u1d5d', '\u1d66'  ), 
     ':gamma' : ('\u1d5e', '\u1d67'  ), 
     ':delta' : ('\u1d5f', '?'   ), 
     ':epsilon' : ('\u1d4b', '?'   ), 
     ':theta' : ('\u1dbf', '?'   ), 
     ':iota' : ('\u1da5', '?'   ), 
     ':pho'  : ('?',  '\u1d68'  ), 
     ':phi'  : ('\u1db2', '?'   ), 
     ':psi'  : ('\u1d60', '\u1d69'  ), 
     ':chi'  : ('\u1d61', '\u1d6a'  ), 
     ':coffee' : ('\u2615', '\u2615'  ) 
    } 

    keys = sorted(unicode_map.keys()) 

    for key in keys: 
     spr = "X" + unicode_map[key][0] 
     sub = "X" + unicode_map[key][1]   
     if (spr == "X?"): spr = "" 
     if (sub == "X?"): sub = "" 
     print('%-15s %s %s' % (key, spr, sub)) 

table()