iTerm2

Tested Software version 3.5.0 beta18 on Darwin Full results available at ucs-detect repository path data/macos-iTerm2-3.5.0_beta18.yaml

Wide character support

The best wide unicode table version for iTerm2 appears to be 15.0.0, this is from a summary of the following results:

version

n_errors

n_total

pct_success

‘5.1.0’

0

26

100.0%

‘5.2.0’

79

269

70.6%

‘6.0.0’

0

13

100.0%

‘9.0.0’

0

5000

100.0%

‘10.0.0’

73

735

90.1%

‘11.0.0’

6

62

90.3%

‘12.0.0’

6

62

90.3%

‘12.1.0’

0

1

100.0%

‘13.0.0’

54

541

90.0%

‘14.0.0’

4

41

90.2%

‘15.0.0’

1

15

93.3%

‘15.1.0’

5

5

0.0%

Sequence of a WIDE character from Unicode Version 15.0.0, from midpoint of alignment failure records:

Codepoint

Python

Category

wcwidth

Name

U+0001FABC

‘\U0001fabc’

So

2

JELLYFISH

Total codepoints: 1

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xf0\x9f\xaa\xbc|\\n12|\\n"
    🪼|
    12|
    
  • python wcwidth.wcswidth() measures width 2, while iTerm2 measures width 1.

Emoji ZWJ support

The best Emoji ZWJ table version for iTerm2 appears to be 15.1, this is from a summary of the following results:

version

n_errors

n_total

pct_success

‘2.0’

0

22

100.0%

‘4.0’

40

579

93.1%

‘5.0’

0

100

100.0%

‘11.0’

0

73

100.0%

‘12.0’

0

112

100.0%

‘12.1’

0

165

100.0%

‘13.0’

0

51

100.0%

‘13.1’

0

83

100.0%

‘14.0’

0

20

100.0%

‘15.0’

0

1

100.0%

‘15.1’

0

109

100.0%

Sequence of an Emoji ZWJ Sequence from Emoji Version 4.0, from midpoint of alignment failure records:

Codepoint

Python

Category

wcwidth

Name

U+0001F3CC

‘\U0001f3cc’

So

1

GOLFER

U+0001F3FB

‘\U0001f3fb’

Sk

0

EMOJI MODIFIER FITZPATRICK TYPE-1-2

U+200D

‘\u200d’

Cf

0

ZERO WIDTH JOINER

U+2640

‘\u2640’

So

1

FEMALE SIGN

U+FE0F

‘\ufe0f’

Mn

0

VARIATION SELECTOR-16

Total codepoints: 5

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xf0\x9f\x8f\x8c\xf0\x9f\x8f\xbb\xe2\x80\x8d\xe2\x99\x80\xef\xb8\x8f|\\n12|\\n"
    🏌🏻‍♀️|
    12|
    
  • python wcwidth.wcswidth() measures width 2, while iTerm2 measures width 1.

Variation Selector-16 support

Emoji VS-16 results for iTerm2 is 9 errors out of 100 total codepoints tested, 91.0% success. Sequence of a NARROW Emoji made WIDE by Variation Selector-16, from midpoint of alignment failure records:

Codepoint

Python

Category

wcwidth

Name

U+0034

‘4’

Nd

1

DIGIT FOUR

U+FE0F

‘\ufe0f’

Mn

0

VARIATION SELECTOR-16

Total codepoints: 2

  • Shell test using printf(1), '|' should align in output:

    $ printf "4\xef\xb8\x8f|\\n12|\\n"
    4️|
    12|
    
  • python wcwidth.wcswidth() measures width 2, while iTerm2 measures width 1.

Language Support

The following 71 languages were tested with 100% success:

Adyghe, Aja, Amarakaeri, Arabic, Standard, Assyrian Neo-Aramaic, Baatonum, Bamun, Bora, Chakma, Cherokee (cased), Chickasaw, Chinantec, Chiltepec, Dagaare, Southern, Dangme, Dari, Dendi, Dinka, Northeastern, Ditammari, Dzongkha, Evenki, Farsi, Western, Fon, Fur, Ga, Gen, Gilyak, Gumuz, Idoma, Kabardian, Lamnso’, Lao, Lingala (tones), Maldivian, Mazahua Central, Mixtec, Metlatónoc, Mongolian, Halh (Mongolian), Mòoré, Nanai, Navajo, Nuosu, Orok, Otomi, Mezquital, Panjabi, Western, Pashto, Northern, Picard, Pular (Adlam), Sanskrit (Grantha), Secoya, Seraiki, Serer-Sine, Siona, South Azerbaijani, Tagalog (Tagalog), Tai Dam, Tamazight, Central Atlas, Tamazight, Central Atlas (Tifinagh), Tamazight, Standard Morocan, Tem, Thai, Thai (2), Ticuna, Uduk, Vai, Veps, Vietnamese, Vietnamese (Han nom), Waama, Yiddish, Eastern, Yoruba, Yukaghir, Northern, Éwé.

The following 27 languages are not fully supported:

lang

n_errors

n_total

pct_success

Javanese (Javanese)

500

527

5.1%

Shan

500

533

6.2%

Tamil (Sri Lanka)

500

539

7.2%

Tamil

500

540

7.4%

Malayalam

500

579

13.6%

Bengali

500

588

15.0%

Khmer, Central

448

528

15.2%

Kannada

500

598

16.4%

Burmese

500

608

17.8%

Khün

361

442

18.3%

Sanskrit

500

677

26.1%

Tamang, Eastern

33

45

26.7%

Nepali

500

702

28.8%

Marathi

500

703

28.9%

Mon

500

711

29.7%

Gujarati

500

756

33.9%

Hindi

500

774

35.4%

Telugu

500

779

35.8%

Maithili

500

794

37.0%

Panjabi, Eastern

500

860

41.9%

Sinhala

500

978

48.9%

Bhojpuri

500

1009

50.4%

Magahi

500

1074

53.4%

Tibetan, Central

2

260

99.2%

Yaneshaʼ

6

2536

99.8%

Urdu

1

2237

100.0%

Urdu (2)

1

2251

100.0%

Javanese (Javanese)

Sequence of language Javanese (Javanese) from midpoint of alignment failure records:

Codepoint

Python

Category

wcwidth

Name

U+A9B2

‘\ua9b2’

Lo

1

JAVANESE LETTER HA

U+A9B8

‘\ua9b8’

Mn

0

JAVANESE VOWEL SIGN SUKU

U+A9A9

‘\ua9a9’

Lo

1

JAVANESE LETTER MA

U+A9A0

‘\ua9a0’

Lo

1

JAVANESE LETTER TA

Total codepoints: 4

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xea\xa6\xb2\xea\xa6\xb8\xea\xa6\xa9\xea\xa6\xa0|\\n123|\\n"
    ꦲꦸꦩꦠ|
    123|
    
  • python wcwidth.wcswidth() measures width 3, while iTerm2 measures width 4.

Shan

Sequence of language Shan from midpoint of alignment failure records:

Codepoint

Python

Category

wcwidth

Name

U+101C

‘\u101c’

Lo

1

MYANMAR LETTER LA

U+102D

‘\u102d’

Mn

0

MYANMAR VOWEL SIGN I

U+1075

‘\u1075’

Lo

1

MYANMAR LETTER SHAN KA

U+103A

‘\u103a’

Mn

0

MYANMAR SIGN ASAT

U+1088

‘\u1088’

Mc

0

MYANMAR SIGN SHAN TONE-3

U+1015

‘\u1015’

Lo

1

MYANMAR LETTER PA

U+102D

‘\u102d’

Mn

0

MYANMAR VOWEL SIGN I

U+102F

‘\u102f’

Mn

0

MYANMAR VOWEL SIGN U

U+107C

‘\u107c’

Lo

1

MYANMAR LETTER SHAN NA

U+103A

‘\u103a’

Mn

0

MYANMAR SIGN ASAT

U+107D

‘\u107d’

Lo

1

MYANMAR LETTER SHAN PHA

U+1062

‘\u1062’

Mc

0

MYANMAR VOWEL SIGN SGAW KAREN EU

U+101D

‘\u101d’

Lo

1

MYANMAR LETTER WA

U+103A

‘\u103a’

Mn

0

MYANMAR SIGN ASAT

U+1087

‘\u1087’

Mc

0

MYANMAR SIGN SHAN TONE-2

Total codepoints: 15

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xe1\x80\x9c\xe1\x80\xad\xe1\x81\xb5\xe1\x80\xba\xe1\x82\x88\xe1\x80\x95\xe1\x80\xad\xe1\x80\xaf\xe1\x81\xbc\xe1\x80\xba\xe1\x81\xbd\xe1\x81\xa2\xe1\x80\x9d\xe1\x80\xba\xe1\x82\x87|\\n123456|\\n"
    လိၵ်ႈပိုၼ်ၽၢဝ်ႇ|
    123456|
    
  • python wcwidth.wcswidth() measures width 6, while iTerm2 measures width 9.

Tamil (Sri Lanka)

Sequence of language Tamil (Sri Lanka) from midpoint of alignment failure records:

Codepoint

Python

Category

wcwidth

Name

U+0BAE

‘\u0bae’

Lo

1

TAMIL LETTER MA

U+0BA9

‘\u0ba9’

Lo

1

TAMIL LETTER NNNA

U+0BBF

‘\u0bbf’

Mc

0

TAMIL VOWEL SIGN I

U+0BA4

‘\u0ba4’

Lo

1

TAMIL LETTER TA

Total codepoints: 4

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xe0\xae\xae\xe0\xae\xa9\xe0\xae\xbf\xe0\xae\xa4|\\n123|\\n"
    மனித|
    123|
    
  • python wcwidth.wcswidth() measures width 3, while iTerm2 measures width 4.

Tamil

Sequence of language Tamil from midpoint of alignment failure records:

Codepoint

Python

Category

wcwidth

Name

U+0BAE

‘\u0bae’

Lo

1

TAMIL LETTER MA

U+0BA9

‘\u0ba9’

Lo

1

TAMIL LETTER NNNA

U+0BBF

‘\u0bbf’

Mc

0

TAMIL VOWEL SIGN I

U+0BA4

‘\u0ba4’

Lo

1

TAMIL LETTER TA

Total codepoints: 4

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xe0\xae\xae\xe0\xae\xa9\xe0\xae\xbf\xe0\xae\xa4|\\n123|\\n"
    மனித|
    123|
    
  • python wcwidth.wcswidth() measures width 3, while iTerm2 measures width 4.

Malayalam

Sequence of language Malayalam from midpoint of alignment failure records:

Codepoint

Python

Category

wcwidth

Name

U+0D2E

‘\u0d2e’

Lo

1

MALAYALAM LETTER MA

U+0D28

‘\u0d28’

Lo

1

MALAYALAM LETTER NA

U+0D41

‘\u0d41’

Mn

0

MALAYALAM VOWEL SIGN U

U+0D37

‘\u0d37’

Lo

1

MALAYALAM LETTER SSA

U+0D4D

‘\u0d4d’

Mn

0

MALAYALAM SIGN VIRAMA

U+0D2F

‘\u0d2f’

Lo

1

MALAYALAM LETTER YA

U+0D3E

‘\u0d3e’

Mc

0

MALAYALAM VOWEL SIGN AA

U+0D35

‘\u0d35’

Lo

1

MALAYALAM LETTER VA

U+0D15

‘\u0d15’

Lo

1

MALAYALAM LETTER KA

U+0D3E

‘\u0d3e’

Mc

0

MALAYALAM VOWEL SIGN AA

U+0D36

‘\u0d36’

Lo

1

MALAYALAM LETTER SHA

U+0D19

‘\u0d19’

Lo

1

MALAYALAM LETTER NGA

U+0D4D

‘\u0d4d’

Mn

0

MALAYALAM SIGN VIRAMA

U+0D19

‘\u0d19’

Lo

1

MALAYALAM LETTER NGA

U+0D33

‘\u0d33’

Lo

1

MALAYALAM LETTER LLA

U+0D46

‘\u0d46’

Mc

0

MALAYALAM VOWEL SIGN E

U+0D15

‘\u0d15’

Lo

1

MALAYALAM LETTER KA

U+0D4D

‘\u0d4d’

Mn

0

MALAYALAM SIGN VIRAMA

U+0D15

‘\u0d15’

Lo

1

MALAYALAM LETTER KA

U+0D41

‘\u0d41’

Mn

0

MALAYALAM VOWEL SIGN U

U+0D31

‘\u0d31’

Lo

1

MALAYALAM LETTER RRA

U+0D3F

‘\u0d3f’

Mc

0

MALAYALAM VOWEL SIGN I

U+0D15

‘\u0d15’

Lo

1

MALAYALAM LETTER KA

U+0D4D

‘\u0d4d’

Mn

0

MALAYALAM SIGN VIRAMA

U+0D15

‘\u0d15’

Lo

1

MALAYALAM LETTER KA

U+0D41

‘\u0d41’

Mn

0

MALAYALAM VOWEL SIGN U

U+0D28

‘\u0d28’

Lo

1

MALAYALAM LETTER NA

U+0D4D

‘\u0d4d’

Mn

0

MALAYALAM SIGN VIRAMA

U+0D28

‘\u0d28’

Lo

1

MALAYALAM LETTER NA

Total codepoints: 29

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xe0\xb4\xae\xe0\xb4\xa8\xe0\xb5\x81\xe0\xb4\xb7\xe0\xb5\x8d\xe0\xb4\xaf\xe0\xb4\xbe\xe0\xb4\xb5\xe0\xb4\x95\xe0\xb4\xbe\xe0\xb4\xb6\xe0\xb4\x99\xe0\xb5\x8d\xe0\xb4\x99\xe0\xb4\xb3\xe0\xb5\x86\xe0\xb4\x95\xe0\xb5\x8d\xe0\xb4\x95\xe0\xb5\x81\xe0\xb4\xb1\xe0\xb4\xbf\xe0\xb4\x95\xe0\xb5\x8d\xe0\xb4\x95\xe0\xb5\x81\xe0\xb4\xa8\xe0\xb5\x8d\xe0\xb4\xa8|\\n12345678901234567|\\n"
    മനുഷ്യാവകാശങ്ങളെക്കുറിക്കുന്ന|
    12345678901234567|
    
  • python wcwidth.wcswidth() measures width 17, while iTerm2 measures width 21.

Bengali

Sequence of language Bengali from midpoint of alignment failure records:

Codepoint

Python

Category

wcwidth

Name

U+09AE

‘\u09ae’

Lo

1

BENGALI LETTER MA

U+09BE

‘\u09be’

Mc

0

BENGALI VOWEL SIGN AA

U+09A8

‘\u09a8’

Lo

1

BENGALI LETTER NA

U+09AC

‘\u09ac’

Lo

1

BENGALI LETTER BA

U+09BE

‘\u09be’

Mc

0

BENGALI VOWEL SIGN AA

U+09A7

‘\u09a7’

Lo

1

BENGALI LETTER DHA

U+09BF

‘\u09bf’

Mc

0

BENGALI VOWEL SIGN I

U+0995

‘\u0995’

Lo

1

BENGALI LETTER KA

U+09BE

‘\u09be’

Mc

0

BENGALI VOWEL SIGN AA

U+09B0

‘\u09b0’

Lo

1

BENGALI LETTER RA

U+09C7

‘\u09c7’

Mc

0

BENGALI VOWEL SIGN E

U+09B0

‘\u09b0’

Lo

1

BENGALI LETTER RA

Total codepoints: 12

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xe0\xa6\xae\xe0\xa6\xbe\xe0\xa6\xa8\xe0\xa6\xac\xe0\xa6\xbe\xe0\xa6\xa7\xe0\xa6\xbf\xe0\xa6\x95\xe0\xa6\xbe\xe0\xa6\xb0\xe0\xa7\x87\xe0\xa6\xb0|\\n1234567|\\n"
    মানবাধিকারের|
    1234567|
    
  • python wcwidth.wcswidth() measures width 7, while iTerm2 measures width 12.

Khmer, Central

Sequence of language Khmer, Central from midpoint of alignment failure records:

Codepoint

Python

Category

wcwidth

Name

U+179F

‘\u179f’

Lo

1

KHMER LETTER SA

U+17C1

‘\u17c1’

Mc

0

KHMER VOWEL SIGN E

U+1785

‘\u1785’

Lo

1

KHMER LETTER CA

U+1780

‘\u1780’

Lo

1

KHMER LETTER KA

U+17D2

‘\u17d2’

Mn

0

KHMER SIGN COENG

U+178A

‘\u178a’

Lo

1

KHMER LETTER DA

U+17B8

‘\u17b8’

Mn

0

KHMER VOWEL SIGN II

U+1794

‘\u1794’

Lo

1

KHMER LETTER BA

U+17D2

‘\u17d2’

Mn

0

KHMER SIGN COENG

U+179A

‘\u179a’

Lo

1

KHMER LETTER RO

U+1780

‘\u1780’

Lo

1

KHMER LETTER KA

U+17B6

‘\u17b6’

Mc

0

KHMER VOWEL SIGN AA

U+179F

‘\u179f’

Lo

1

KHMER LETTER SA

U+1787

‘\u1787’

Lo

1

KHMER LETTER CO

U+17B6

‘\u17b6’

Mc

0

KHMER VOWEL SIGN AA

U+179F

‘\u179f’

Lo

1

KHMER LETTER SA

U+1780

‘\u1780’

Lo

1

KHMER LETTER KA

U+179B

‘\u179b’

Lo

1

KHMER LETTER LO

U+179F

‘\u179f’

Lo

1

KHMER LETTER SA

U+17D2

‘\u17d2’

Mn

0

KHMER SIGN COENG

U+178A

‘\u178a’

Lo

1

KHMER LETTER DA

U+17B8

‘\u17b8’

Mn

0

KHMER VOWEL SIGN II

U+1796

‘\u1796’

Lo

1

KHMER LETTER PO

U+17B8

‘\u17b8’

Mn

0

KHMER VOWEL SIGN II

U+179F

‘\u179f’

Lo

1

KHMER LETTER SA

U+17B7

‘\u17b7’

Mn

0

KHMER VOWEL SIGN I

U+1791

‘\u1791’

Lo

1

KHMER LETTER TO

U+17D2

‘\u17d2’

Mn

0

KHMER SIGN COENG

U+1792

‘\u1792’

Lo

1

KHMER LETTER THO

U+17B7

‘\u17b7’

Mn

0

KHMER VOWEL SIGN I

U+1798

‘\u1798’

Lo

1

KHMER LETTER MO

U+1793

‘\u1793’

Lo

1

KHMER LETTER NO

U+17BB

‘\u17bb’

Mn

0

KHMER VOWEL SIGN U

U+179F

‘\u179f’

Lo

1

KHMER LETTER SA

U+17D2

‘\u17d2’

Mn

0

KHMER SIGN COENG

U+179F

‘\u179f’

Lo

1

KHMER LETTER SA

Total codepoints: 36

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xe1\x9e\x9f\xe1\x9f\x81\xe1\x9e\x85\xe1\x9e\x80\xe1\x9f\x92\xe1\x9e\x8a\xe1\x9e\xb8\xe1\x9e\x94\xe1\x9f\x92\xe1\x9e\x9a\xe1\x9e\x80\xe1\x9e\xb6\xe1\x9e\x9f\xe1\x9e\x87\xe1\x9e\xb6\xe1\x9e\x9f\xe1\x9e\x80\xe1\x9e\x9b\xe1\x9e\x9f\xe1\x9f\x92\xe1\x9e\x8a\xe1\x9e\xb8\xe1\x9e\x96\xe1\x9e\xb8\xe1\x9e\x9f\xe1\x9e\xb7\xe1\x9e\x91\xe1\x9f\x92\xe1\x9e\x92\xe1\x9e\xb7\xe1\x9e\x98\xe1\x9e\x93\xe1\x9e\xbb\xe1\x9e\x9f\xe1\x9f\x92\xe1\x9e\x9f|\\n1234567890123456789012|\\n"
    សេចក្ដីប្រកាសជាសកលស្ដីពីសិទ្ធិមនុស្ស|
    1234567890123456789012|
    
  • python wcwidth.wcswidth() measures width 22, while iTerm2 measures width 25.

Kannada

Sequence of language Kannada from midpoint of alignment failure records:

Codepoint

Python

Category

wcwidth

Name

U+0CAE

‘\u0cae’

Lo

1

KANNADA LETTER MA

U+0CBE

‘\u0cbe’

Mc

0

KANNADA VOWEL SIGN AA

U+0CA8

‘\u0ca8’

Lo

1

KANNADA LETTER NA

U+0CB5

‘\u0cb5’

Lo

1

KANNADA LETTER VA

Total codepoints: 4

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xe0\xb2\xae\xe0\xb2\xbe\xe0\xb2\xa8\xe0\xb2\xb5|\\n123|\\n"
    ಮಾನವ|
    123|
    
  • python wcwidth.wcswidth() measures width 3, while iTerm2 measures width 4.

Burmese

Sequence of language Burmese from midpoint of alignment failure records:

Codepoint

Python

Category

wcwidth

Name

U+1021

‘\u1021’

Lo

1

MYANMAR LETTER A

U+1015

‘\u1015’

Lo

1

MYANMAR LETTER PA

U+103C

‘\u103c’

Mc

0

MYANMAR CONSONANT SIGN MEDIAL RA

U+100A

‘\u100a’

Lo

1

MYANMAR LETTER NNYA

U+103A

‘\u103a’

Mn

0

MYANMAR SIGN ASAT

U+1015

‘\u1015’

Lo

1

MYANMAR LETTER PA

U+103C

‘\u103c’

Mc

0

MYANMAR CONSONANT SIGN MEDIAL RA

U+100A

‘\u100a’

Lo

1

MYANMAR LETTER NNYA

U+103A

‘\u103a’

Mn

0

MYANMAR SIGN ASAT

U+1006

‘\u1006’

Lo

1

MYANMAR LETTER CHA

U+102D

‘\u102d’

Mn

0

MYANMAR VOWEL SIGN I

U+102F

‘\u102f’

Mn

0

MYANMAR VOWEL SIGN U

U+1004

‘\u1004’

Lo

1

MYANMAR LETTER NGA

U+103A

‘\u103a’

Mn

0

MYANMAR SIGN ASAT

U+101B

‘\u101b’

Lo

1

MYANMAR LETTER RA

U+102C

‘\u102c’

Mc

0

MYANMAR VOWEL SIGN AA

Total codepoints: 16

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xe1\x80\xa1\xe1\x80\x95\xe1\x80\xbc\xe1\x80\x8a\xe1\x80\xba\xe1\x80\x95\xe1\x80\xbc\xe1\x80\x8a\xe1\x80\xba\xe1\x80\x86\xe1\x80\xad\xe1\x80\xaf\xe1\x80\x84\xe1\x80\xba\xe1\x80\x9b\xe1\x80\xac|\\n12345678|\\n"
    အပြည်ပြည်ဆိုင်ရာ|
    12345678|
    
  • python wcwidth.wcswidth() measures width 8, while iTerm2 measures width 11.

Khün

Sequence of language Khün from midpoint of alignment failure records:

Codepoint

Python

Category

wcwidth

Name

U+1A20

‘\u1a20’

Lo

1

TAI THAM LETTER HIGH KA

U+1A32

‘\u1a32’

Lo

1

TAI THAM LETTER HIGH TA

U+1A65

‘\u1a65’

Mn

0

TAI THAM VOWEL SIGN I

U+1A20

‘\u1a20’

Lo

1

TAI THAM LETTER HIGH KA

U+1A63

‘\u1a63’

Mc

0

TAI THAM VOWEL SIGN AA

U+1A45

‘\u1a45’

Lo

1

TAI THAM LETTER WA

U+1A64

‘\u1a64’

Mc

0

TAI THAM VOWEL SIGN TALL AA

U+1A75

‘\u1a75’

Mn

0

TAI THAM SIGN TONE-1

U+1A2F

‘\u1a2f’

Lo

1

TAI THAM LETTER DA

U+1A60

‘\u1a60’

Mn

0

TAI THAM SIGN SAKOT

U+1A45

‘\u1a45’

Lo

1

TAI THAM LETTER WA

U+1A60

‘\u1a60’

Mn

0

TAI THAM SIGN SAKOT

U+1A3F

‘\u1a3f’

Lo

1

TAI THAM LETTER LOW YA

U+1A62

‘\u1a62’

Mn

0

TAI THAM VOWEL SIGN MAI SAT

U+1A3E

‘\u1a3e’

Lo

1

TAI THAM LETTER MA

U+1A36

‘\u1a36’

Lo

1

TAI THAM LETTER NA

U+1A69

‘\u1a69’

Mn

0

TAI THAM VOWEL SIGN U

U+1A54

‘\u1a54’

Lo

1

TAI THAM LETTER GREAT SA

U+1A29

‘\u1a29’

Lo

1

TAI THAM LETTER LOW CA

U+1A63

‘\u1a63’

Mc

0

TAI THAM VOWEL SIGN AA

U+1A60

‘\u1a60’

Mn

0

TAI THAM SIGN SAKOT

U+1A32

‘\u1a32’

Lo

1

TAI THAM LETTER HIGH TA

Total codepoints: 22

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xe1\xa8\xa0\xe1\xa8\xb2\xe1\xa9\xa5\xe1\xa8\xa0\xe1\xa9\xa3\xe1\xa9\x85\xe1\xa9\xa4\xe1\xa9\xb5\xe1\xa8\xaf\xe1\xa9\xa0\xe1\xa9\x85\xe1\xa9\xa0\xe1\xa8\xbf\xe1\xa9\xa2\xe1\xa8\xbe\xe1\xa8\xb6\xe1\xa9\xa9\xe1\xa9\x94\xe1\xa8\xa9\xe1\xa9\xa3\xe1\xa9\xa0\xe1\xa8\xb2|\\n123456789012|\\n"
    ᨠᨲᩥᨠᩣᩅᩤ᩵ᨯ᩠ᩅ᩠ᨿᩢᨾᨶᩩᩔᨩᩣ᩠ᨲ|
    123456789012|
    
  • python wcwidth.wcswidth() measures width 12, while iTerm2 measures width 15.

Sanskrit

Sequence of language Sanskrit from midpoint of alignment failure records:

Codepoint

Python

Category

wcwidth

Name

U+092E

‘\u092e’

Lo

1

DEVANAGARI LETTER MA

U+093E

‘\u093e’

Mc

0

DEVANAGARI VOWEL SIGN AA

U+0928

‘\u0928’

Lo

1

DEVANAGARI LETTER NA

U+0935

‘\u0935’

Lo

1

DEVANAGARI LETTER VA

U+093E

‘\u093e’

Mc

0

DEVANAGARI VOWEL SIGN AA

U+0927

‘\u0927’

Lo

1

DEVANAGARI LETTER DHA

U+093F

‘\u093f’

Mc

0

DEVANAGARI VOWEL SIGN I

U+0915

‘\u0915’

Lo

1

DEVANAGARI LETTER KA

U+093E

‘\u093e’

Mc

0

DEVANAGARI VOWEL SIGN AA

U+0930

‘\u0930’

Lo

1

DEVANAGARI LETTER RA

U+093E

‘\u093e’

Mc

0

DEVANAGARI VOWEL SIGN AA

U+0923

‘\u0923’

Lo

1

DEVANAGARI LETTER NNA

U+093E

‘\u093e’

Mc

0

DEVANAGARI VOWEL SIGN AA

U+0902

‘\u0902’

Mn

0

DEVANAGARI SIGN ANUSVARA

Total codepoints: 14

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xe0\xa4\xae\xe0\xa4\xbe\xe0\xa4\xa8\xe0\xa4\xb5\xe0\xa4\xbe\xe0\xa4\xa7\xe0\xa4\xbf\xe0\xa4\x95\xe0\xa4\xbe\xe0\xa4\xb0\xe0\xa4\xbe\xe0\xa4\xa3\xe0\xa4\xbe\xe0\xa4\x82|\\n1234567|\\n"
    मानवाधिकाराणां|
    1234567|
    
  • python wcwidth.wcswidth() measures width 7, while iTerm2 measures width 13.

Tamang, Eastern

Sequence of language Tamang, Eastern from midpoint of alignment failure records:

Codepoint

Python

Category

wcwidth

Name

U+092E

‘\u092e’

Lo

1

DEVANAGARI LETTER MA

U+094D

‘\u094d’

Mn

0

DEVANAGARI SIGN VIRAMA

U+0939

‘\u0939’

Lo

1

DEVANAGARI LETTER HA

U+0940

‘\u0940’

Mc

0

DEVANAGARI VOWEL SIGN II

U+0938

‘\u0938’

Lo

1

DEVANAGARI LETTER SA

U+0947

‘\u0947’

Mn

0

DEVANAGARI VOWEL SIGN E

Total codepoints: 6

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xe0\xa4\xae\xe0\xa5\x8d\xe0\xa4\xb9\xe0\xa5\x80\xe0\xa4\xb8\xe0\xa5\x87|\\n123|\\n"
    म्हीसे|
    123|
    
  • python wcwidth.wcswidth() measures width 3, while iTerm2 measures width 4.

Nepali

Sequence of language Nepali from midpoint of alignment failure records:

Codepoint

Python

Category

wcwidth

Name

U+092E

‘\u092e’

Lo

1

DEVANAGARI LETTER MA

U+093E

‘\u093e’

Mc

0

DEVANAGARI VOWEL SIGN AA

U+0928

‘\u0928’

Lo

1

DEVANAGARI LETTER NA

U+0935

‘\u0935’

Lo

1

DEVANAGARI LETTER VA

Total codepoints: 4

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xe0\xa4\xae\xe0\xa4\xbe\xe0\xa4\xa8\xe0\xa4\xb5|\\n123|\\n"
    मानव|
    123|
    
  • python wcwidth.wcswidth() measures width 3, while iTerm2 measures width 4.

Marathi

Sequence of language Marathi from midpoint of alignment failure records:

Codepoint

Python

Category

wcwidth

Name

U+092E

‘\u092e’

Lo

1

DEVANAGARI LETTER MA

U+093E

‘\u093e’

Mc

0

DEVANAGARI VOWEL SIGN AA

U+0928

‘\u0928’

Lo

1

DEVANAGARI LETTER NA

U+0935

‘\u0935’

Lo

1

DEVANAGARI LETTER VA

U+0940

‘\u0940’

Mc

0

DEVANAGARI VOWEL SIGN II

Total codepoints: 5

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xe0\xa4\xae\xe0\xa4\xbe\xe0\xa4\xa8\xe0\xa4\xb5\xe0\xa5\x80|\\n123|\\n"
    मानवी|
    123|
    
  • python wcwidth.wcswidth() measures width 3, while iTerm2 measures width 5.

Mon

Sequence of language Mon from midpoint of alignment failure records:

Codepoint

Python

Category

wcwidth

Name

U+101C

‘\u101c’

Lo

1

MYANMAR LETTER LA

U+102D

‘\u102d’

Mn

0

MYANMAR VOWEL SIGN I

U+1000

‘\u1000’

Lo

1

MYANMAR LETTER KA

U+103A

‘\u103a’

Mn

0

MYANMAR SIGN ASAT

U+101C

‘\u101c’

Lo

1

MYANMAR LETTER LA

U+101C

‘\u101c’

Lo

1

MYANMAR LETTER LA

U+1031

‘\u1031’

Mc

0

MYANMAR VOWEL SIGN E

U+102C

‘\u102c’

Mc

0

MYANMAR VOWEL SIGN AA

U+105A

‘\u105a’

Lo

1

MYANMAR LETTER MON NGA

U+103A

‘\u103a’

Mn

0

MYANMAR SIGN ASAT

Total codepoints: 10

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xe1\x80\x9c\xe1\x80\xad\xe1\x80\x80\xe1\x80\xba\xe1\x80\x9c\xe1\x80\x9c\xe1\x80\xb1\xe1\x80\xac\xe1\x81\x9a\xe1\x80\xba|\\n12345|\\n"
    လိက်လလောၚ်|
    12345|
    
  • python wcwidth.wcswidth() measures width 5, while iTerm2 measures width 7.

Gujarati

Sequence of language Gujarati from midpoint of alignment failure records:

Codepoint

Python

Category

wcwidth

Name

U+0AAE

‘\u0aae’

Lo

1

GUJARATI LETTER MA

U+0ABE

‘\u0abe’

Mc

0

GUJARATI VOWEL SIGN AA

U+0AA8

‘\u0aa8’

Lo

1

GUJARATI LETTER NA

U+0AB5

‘\u0ab5’

Lo

1

GUJARATI LETTER VA

Total codepoints: 4

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xe0\xaa\xae\xe0\xaa\xbe\xe0\xaa\xa8\xe0\xaa\xb5|\\n123|\\n"
    માનવ|
    123|
    
  • python wcwidth.wcswidth() measures width 3, while iTerm2 measures width 4.

Hindi

Sequence of language Hindi from midpoint of alignment failure records:

Codepoint

Python

Category

wcwidth

Name

U+092E

‘\u092e’

Lo

1

DEVANAGARI LETTER MA

U+093E

‘\u093e’

Mc

0

DEVANAGARI VOWEL SIGN AA

U+0928

‘\u0928’

Lo

1

DEVANAGARI LETTER NA

U+0935

‘\u0935’

Lo

1

DEVANAGARI LETTER VA

Total codepoints: 4

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xe0\xa4\xae\xe0\xa4\xbe\xe0\xa4\xa8\xe0\xa4\xb5|\\n123|\\n"
    मानव|
    123|
    
  • python wcwidth.wcswidth() measures width 3, while iTerm2 measures width 4.

Telugu

Sequence of language Telugu from midpoint of alignment failure records:

Codepoint

Python

Category

wcwidth

Name

U+0C2E

‘\u0c2e’

Lo

1

TELUGU LETTER MA

U+0C3E

‘\u0c3e’

Mn

0

TELUGU VOWEL SIGN AA

U+0C28

‘\u0c28’

Lo

1

TELUGU LETTER NA

U+0C35

‘\u0c35’

Lo

1

TELUGU LETTER VA

U+0C38

‘\u0c38’

Lo

1

TELUGU LETTER SA

U+0C4D

‘\u0c4d’

Mn

0

TELUGU SIGN VIRAMA

U+0C35

‘\u0c35’

Lo

1

TELUGU LETTER VA

U+0C24

‘\u0c24’

Lo

1

TELUGU LETTER TA

U+0C4D

‘\u0c4d’

Mn

0

TELUGU SIGN VIRAMA

U+0C35

‘\u0c35’

Lo

1

TELUGU LETTER VA

U+0C2E

‘\u0c2e’

Lo

1

TELUGU LETTER MA

U+0C41

‘\u0c41’

Mc

0

TELUGU VOWEL SIGN U

U+0C32

‘\u0c32’

Lo

1

TELUGU LETTER LA

Total codepoints: 13

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xe0\xb0\xae\xe0\xb0\xbe\xe0\xb0\xa8\xe0\xb0\xb5\xe0\xb0\xb8\xe0\xb1\x8d\xe0\xb0\xb5\xe0\xb0\xa4\xe0\xb1\x8d\xe0\xb0\xb5\xe0\xb0\xae\xe0\xb1\x81\xe0\xb0\xb2|\\n123456789|\\n"
    మానవస్వత్వముల|
    123456789|
    
  • python wcwidth.wcswidth() measures width 9, while iTerm2 measures width 10.

Maithili

Sequence of language Maithili from midpoint of alignment failure records:

Codepoint

Python

Category

wcwidth

Name

U+0938

‘\u0938’

Lo

1

DEVANAGARI LETTER SA

U+093E

‘\u093e’

Mc

0

DEVANAGARI VOWEL SIGN AA

U+0930

‘\u0930’

Lo

1

DEVANAGARI LETTER RA

U+094D

‘\u094d’

Mn

0

DEVANAGARI SIGN VIRAMA

U+0935

‘\u0935’

Lo

1

DEVANAGARI LETTER VA

U+092D

‘\u092d’

Lo

1

DEVANAGARI LETTER BHA

U+094C

‘\u094c’

Mc

0

DEVANAGARI VOWEL SIGN AU

U+092E

‘\u092e’

Lo

1

DEVANAGARI LETTER MA

Total codepoints: 8

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xe0\xa4\xb8\xe0\xa4\xbe\xe0\xa4\xb0\xe0\xa5\x8d\xe0\xa4\xb5\xe0\xa4\xad\xe0\xa5\x8c\xe0\xa4\xae|\\n12345|\\n"
    सार्वभौम|
    12345|
    
  • python wcwidth.wcswidth() measures width 5, while iTerm2 measures width 7.

Panjabi, Eastern

Sequence of language Panjabi, Eastern from midpoint of alignment failure records:

Codepoint

Python

Category

wcwidth

Name

U+0A2E

‘\u0a2e’

Lo

1

GURMUKHI LETTER MA

U+0A28

‘\u0a28’

Lo

1

GURMUKHI LETTER NA

U+0A41

‘\u0a41’

Mn

0

GURMUKHI VOWEL SIGN U

U+0A71

‘\u0a71’

Mn

0

GURMUKHI ADDAK

U+0A16

‘\u0a16’

Lo

1

GURMUKHI LETTER KHA

U+0A40

‘\u0a40’

Mc

0

GURMUKHI VOWEL SIGN II

Total codepoints: 6

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xe0\xa8\xae\xe0\xa8\xa8\xe0\xa9\x81\xe0\xa9\xb1\xe0\xa8\x96\xe0\xa9\x80|\\n123|\\n"
    ਮਨੁੱਖੀ|
    123|
    
  • python wcwidth.wcswidth() measures width 3, while iTerm2 measures width 4.

Sinhala

Sequence of language Sinhala from midpoint of alignment failure records:

Codepoint

Python

Category

wcwidth

Name

U+0DB8

‘\u0db8’

Lo

1

SINHALA LETTER MAYANNA

U+0DCF

‘\u0dcf’

Mc

0

SINHALA VOWEL SIGN AELA-PILLA

U+0DB1

‘\u0db1’

Lo

1

SINHALA LETTER DANTAJA NAYANNA

U+0DC0

‘\u0dc0’

Lo

1

SINHALA LETTER VAYANNA

Total codepoints: 4

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xe0\xb6\xb8\xe0\xb7\x8f\xe0\xb6\xb1\xe0\xb7\x80|\\n123|\\n"
    මානව|
    123|
    
  • python wcwidth.wcswidth() measures width 3, while iTerm2 measures width 4.

Bhojpuri

Sequence of language Bhojpuri from midpoint of alignment failure records:

Codepoint

Python

Category

wcwidth

Name

U+092E

‘\u092e’

Lo

1

DEVANAGARI LETTER MA

U+093E

‘\u093e’

Mc

0

DEVANAGARI VOWEL SIGN AA

U+0928

‘\u0928’

Lo

1

DEVANAGARI LETTER NA

U+0935

‘\u0935’

Lo

1

DEVANAGARI LETTER VA

U+093E

‘\u093e’

Mc

0

DEVANAGARI VOWEL SIGN AA

U+0927

‘\u0927’

Lo

1

DEVANAGARI LETTER DHA

U+093F

‘\u093f’

Mc

0

DEVANAGARI VOWEL SIGN I

U+0915

‘\u0915’

Lo

1

DEVANAGARI LETTER KA

U+093E

‘\u093e’

Mc

0

DEVANAGARI VOWEL SIGN AA

U+0930

‘\u0930’

Lo

1

DEVANAGARI LETTER RA

Total codepoints: 10

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xe0\xa4\xae\xe0\xa4\xbe\xe0\xa4\xa8\xe0\xa4\xb5\xe0\xa4\xbe\xe0\xa4\xa7\xe0\xa4\xbf\xe0\xa4\x95\xe0\xa4\xbe\xe0\xa4\xb0|\\n123456|\\n"
    मानवाधिकार|
    123456|
    
  • python wcwidth.wcswidth() measures width 6, while iTerm2 measures width 10.

Magahi

Sequence of language Magahi from midpoint of alignment failure records:

Codepoint

Python

Category

wcwidth

Name

U+092E

‘\u092e’

Lo

1

DEVANAGARI LETTER MA

U+093E

‘\u093e’

Mc

0

DEVANAGARI VOWEL SIGN AA

U+0928

‘\u0928’

Lo

1

DEVANAGARI LETTER NA

U+0935

‘\u0935’

Lo

1

DEVANAGARI LETTER VA

U+093E

‘\u093e’

Mc

0

DEVANAGARI VOWEL SIGN AA

U+0927

‘\u0927’

Lo

1

DEVANAGARI LETTER DHA

U+093F

‘\u093f’

Mc

0

DEVANAGARI VOWEL SIGN I

U+0915

‘\u0915’

Lo

1

DEVANAGARI LETTER KA

U+093E

‘\u093e’

Mc

0

DEVANAGARI VOWEL SIGN AA

U+0930

‘\u0930’

Lo

1

DEVANAGARI LETTER RA

Total codepoints: 10

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xe0\xa4\xae\xe0\xa4\xbe\xe0\xa4\xa8\xe0\xa4\xb5\xe0\xa4\xbe\xe0\xa4\xa7\xe0\xa4\xbf\xe0\xa4\x95\xe0\xa4\xbe\xe0\xa4\xb0|\\n123456|\\n"
    मानवाधिकार|
    123456|
    
  • python wcwidth.wcswidth() measures width 6, while iTerm2 measures width 10.

Tibetan, Central

Sequence of language Tibetan, Central from midpoint of alignment failure records:

Codepoint

Python

Category

wcwidth

Name

U+0F7C

‘\u0f7c’

Mn

0

TIBETAN VOWEL SIGN O

U+0F66

‘\u0f66’

Lo

1

TIBETAN LETTER SA

U+0F0B

‘\u0f0b’

Po

1

TIBETAN MARK INTERSYLLABIC TSHEG

U+0F54

‘\u0f54’

Lo

1

TIBETAN LETTER PA

U+0F60

‘\u0f60’

Lo

1

TIBETAN LETTER -A

U+0F72

‘\u0f72’

Mn

0

TIBETAN VOWEL SIGN I

U+0F0B

‘\u0f0b’

Po

1

TIBETAN MARK INTERSYLLABIC TSHEG

U+0F50

‘\u0f50’

Lo

1

TIBETAN LETTER THA

U+0F7C

‘\u0f7c’

Mn

0

TIBETAN VOWEL SIGN O

U+0F56

‘\u0f56’

Lo

1

TIBETAN LETTER BA

U+0F0B

‘\u0f0b’

Po

1

TIBETAN MARK INTERSYLLABIC TSHEG

U+0F51

‘\u0f51’

Lo

1

TIBETAN LETTER DA

U+0F56

‘\u0f56’

Lo

1

TIBETAN LETTER BA

U+0F44

‘\u0f44’

Lo

1

TIBETAN LETTER NGA

U+0F0B

‘\u0f0b’

Po

1

TIBETAN MARK INTERSYLLABIC TSHEG

U+0F61

‘\u0f61’

Lo

1

TIBETAN LETTER YA

U+0F7C

‘\u0f7c’

Mn

0

TIBETAN VOWEL SIGN O

U+0F51

‘\u0f51’

Lo

1

TIBETAN LETTER DA

U+0F0D

‘\u0f0d’

Po

1

TIBETAN MARK SHAD

Total codepoints: 19

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xe0\xbd\xbc\xe0\xbd\xa6\xe0\xbc\x8b\xe0\xbd\x94\xe0\xbd\xa0\xe0\xbd\xb2\xe0\xbc\x8b\xe0\xbd\x90\xe0\xbd\xbc\xe0\xbd\x96\xe0\xbc\x8b\xe0\xbd\x91\xe0\xbd\x96\xe0\xbd\x84\xe0\xbc\x8b\xe0\xbd\xa1\xe0\xbd\xbc\xe0\xbd\x91\xe0\xbc\x8d|\\n123456789012345|\\n"
    ོས་པའི་ཐོབ་དབང་ཡོད།|
    123456789012345|
    
  • python wcwidth.wcswidth() measures width 15, while iTerm2 measures width 16.

Yaneshaʼ

Sequence of language Yaneshaʼ from midpoint of alignment failure records:

Codepoint

Python

Category

wcwidth

Name

U+0303

‘\u0303’

Mn

0

COMBINING TILDE

U+0061

‘a’

Ll

1

LATIN SMALL LETTER A

U+006E

‘n’

Ll

1

LATIN SMALL LETTER N

U+0061

‘a’

Ll

1

LATIN SMALL LETTER A

U+0072

‘r’

Ll

1

LATIN SMALL LETTER R

U+0065

‘e’

Ll

1

LATIN SMALL LETTER E

U+0074

‘t’

Ll

1

LATIN SMALL LETTER T

Total codepoints: 7

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xcc\x83anaret|\\n123456|\\n"
    ̃anaret|
    123456|
    
  • python wcwidth.wcswidth() measures width 6, while iTerm2 measures width 7.

Urdu

Sequence of language Urdu from midpoint of alignment failure records:

Codepoint

Python

Category

wcwidth

Name

U+0601

‘\u0601’

Cf

0

ARABIC SIGN SANAH

U+06F1

‘\u06f1’

Nd

1

EXTENDED ARABIC-INDIC DIGIT ONE

U+06F9

‘\u06f9’

Nd

1

EXTENDED ARABIC-INDIC DIGIT NINE

U+06F4

‘\u06f4’

Nd

1

EXTENDED ARABIC-INDIC DIGIT FOUR

U+06F8

‘\u06f8’

Nd

1

EXTENDED ARABIC-INDIC DIGIT EIGHT

U+0621

‘\u0621’

Lo

1

ARABIC LETTER HAMZA

Total codepoints: 6

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xd8\x81\xdb\xb1\xdb\xb9\xdb\xb4\xdb\xb8\xd8\xa1|\\n12345|\\n"
    ؁۱۹۴۸ء|
    12345|
    
  • python wcwidth.wcswidth() measures width 5, while iTerm2 measures width 6.

Urdu (2)

Sequence of language Urdu (2) from midpoint of alignment failure records:

Codepoint

Python

Category

wcwidth

Name

U+0601

‘\u0601’

Cf

0

ARABIC SIGN SANAH

U+06F1

‘\u06f1’

Nd

1

EXTENDED ARABIC-INDIC DIGIT ONE

U+06F9

‘\u06f9’

Nd

1

EXTENDED ARABIC-INDIC DIGIT NINE

U+06F4

‘\u06f4’

Nd

1

EXTENDED ARABIC-INDIC DIGIT FOUR

U+06F8

‘\u06f8’

Nd

1

EXTENDED ARABIC-INDIC DIGIT EIGHT

U+0621

‘\u0621’

Lo

1

ARABIC LETTER HAMZA

Total codepoints: 6

  • Shell test using printf(1), '|' should align in output:

    $ printf "\xd8\x81\xdb\xb1\xdb\xb9\xdb\xb4\xdb\xb8\xd8\xa1|\\n12345|\\n"
    ؁۱۹۴۸ء|
    12345|
    
  • python wcwidth.wcswidth() measures width 5, while iTerm2 measures width 6.