uscript.h File Reference

C API: Unicode Script Information. More...

`#include "unicode/utypes.h"`

Go to the source code of this file.

## Namespaces

| icu
| File coll.h.

## Typedefs

typedef enum UScriptCode | UScriptCode
| Constants for ISO 15924 script codes. More...
typedef enum UScriptUsage | UScriptUsage
| Script usage constants. More...

## Enumerations

enum

UScriptCode {
USCRIPT_INVALID_CODE = -1 , USCRIPT_COMMON = 0 , USCRIPT_INHERITED = 1 , USCRIPT_ARABIC = 2 ,
USCRIPT_ARMENIAN = 3 , USCRIPT_BENGALI = 4 , USCRIPT_BOPOMOFO = 5 , USCRIPT_CHEROKEE = 6 ,
USCRIPT_COPTIC = 7 , USCRIPT_CYRILLIC = 8 , USCRIPT_DESERET = 9 , USCRIPT_DEVANAGARI = 10 ,
USCRIPT_ETHIOPIC = 11 , USCRIPT_GEORGIAN = 12 , USCRIPT_GOTHIC = 13 , USCRIPT_GREEK = 14 ,
USCRIPT_GUJARATI = 15 , USCRIPT_GURMUKHI = 16 , USCRIPT_HAN = 17 , USCRIPT_HANGUL = 18 ,
USCRIPT_HEBREW = 19 , USCRIPT_HIRAGANA = 20 , USCRIPT_KANNADA = 21 , USCRIPT_KATAKANA = 22 ,
USCRIPT_KHMER = 23 , USCRIPT_LAO = 24 , USCRIPT_LATIN = 25 , USCRIPT_MALAYALAM = 26 ,
USCRIPT_MONGOLIAN = 27 , USCRIPT_MYANMAR = 28 , USCRIPT_OGHAM = 29 , USCRIPT_OLD_ITALIC = 30 ,
USCRIPT_ORIYA = 31 , USCRIPT_RUNIC = 32 , USCRIPT_SINHALA = 33 , USCRIPT_SYRIAC = 34 ,
USCRIPT_TAMIL = 35 , USCRIPT_TELUGU = 36 , USCRIPT_THAANA = 37 , USCRIPT_THAI = 38 ,
USCRIPT_TIBETAN = 39 , USCRIPT_CANADIAN_ABORIGINAL = 40 , USCRIPT_UCAS = USCRIPT_CANADIAN_ABORIGINAL , USCRIPT_YI = 41 ,
USCRIPT_TAGALOG = 42 , USCRIPT_HANUNOO = 43 , USCRIPT_BUHID = 44 , USCRIPT_TAGBANWA = 45 ,
USCRIPT_BRAILLE = 46 , USCRIPT_CYPRIOT = 47 , USCRIPT_LIMBU = 48 , USCRIPT_LINEAR_B = 49 ,
USCRIPT_OSMANYA = 50 , USCRIPT_SHAVIAN = 51 , USCRIPT_TAI_LE = 52 , USCRIPT_UGARITIC = 53 ,
USCRIPT_KATAKANA_OR_HIRAGANA = 54 , USCRIPT_BUGINESE = 55 , USCRIPT_GLAGOLITIC = 56 , USCRIPT_KHAROSHTHI = 57 ,
USCRIPT_SYLOTI_NAGRI = 58 , USCRIPT_NEW_TAI_LUE = 59 , USCRIPT_TIFINAGH = 60 , USCRIPT_OLD_PERSIAN = 61 ,
USCRIPT_BALINESE = 62 , USCRIPT_BATAK = 63 , USCRIPT_BLISSYMBOLS = 64 , USCRIPT_BRAHMI = 65 ,
USCRIPT_CHAM = 66 , USCRIPT_CIRTH = 67 , USCRIPT_OLD_CHURCH_SLAVONIC_CYRILLIC = 68 , USCRIPT_DEMOTIC_EGYPTIAN = 69 ,
USCRIPT_HIERATIC_EGYPTIAN = 70 , USCRIPT_EGYPTIAN_HIEROGLYPHS = 71 , USCRIPT_KHUTSURI = 72 , USCRIPT_SIMPLIFIED_HAN = 73 ,
USCRIPT_TRADITIONAL_HAN = 74 , USCRIPT_PAHAWH_HMONG = 75 , USCRIPT_OLD_HUNGARIAN = 76 , USCRIPT_HARAPPAN_INDUS = 77 ,
USCRIPT_JAVANESE = 78 , USCRIPT_KAYAH_LI = 79 , USCRIPT_LATIN_FRAKTUR = 80 , USCRIPT_LATIN_GAELIC = 81 ,
USCRIPT_LEPCHA = 82 , USCRIPT_LINEAR_A = 83 , USCRIPT_MANDAIC = 84 , USCRIPT_MANDAEAN = USCRIPT_MANDAIC ,
USCRIPT_MAYAN_HIEROGLYPHS = 85 , USCRIPT_MEROITIC_HIEROGLYPHS = 86 , USCRIPT_MEROITIC = USCRIPT_MEROITIC_HIEROGLYPHS , USCRIPT_NKO = 87 ,
USCRIPT_ORKHON = 88 , USCRIPT_OLD_PERMIC = 89 , USCRIPT_PHAGS_PA = 90 , USCRIPT_PHOENICIAN = 91 ,
USCRIPT_MIAO = 92 , USCRIPT_PHONETIC_POLLARD = USCRIPT_MIAO , USCRIPT_RONGORONGO = 93 , USCRIPT_SARATI = 94 ,
USCRIPT_ESTRANGELO_SYRIAC = 95 , USCRIPT_WESTERN_SYRIAC = 96 , USCRIPT_EASTERN_SYRIAC = 97 , USCRIPT_TENGWAR = 98 ,
USCRIPT_VAI = 99 , USCRIPT_VISIBLE_SPEECH = 100 , USCRIPT_CUNEIFORM = 101 , USCRIPT_UNWRITTEN_LANGUAGES = 102 ,
USCRIPT_UNKNOWN = 103 , USCRIPT_CARIAN = 104 , USCRIPT_JAPANESE = 105 , USCRIPT_LANNA = 106 ,
USCRIPT_LYCIAN = 107 , USCRIPT_LYDIAN = 108 , USCRIPT_OL_CHIKI = 109 , USCRIPT_REJANG = 110 ,
USCRIPT_SAURASHTRA = 111 , USCRIPT_SIGN_WRITING = 112 , USCRIPT_SUNDANESE = 113 , USCRIPT_MOON = 114 ,
USCRIPT_MEITEI_MAYEK = 115 , USCRIPT_IMPERIAL_ARAMAIC = 116 , USCRIPT_AVESTAN = 117 , USCRIPT_CHAKMA = 118 ,
USCRIPT_KOREAN = 119 , USCRIPT_KAITHI = 120 , USCRIPT_MANICHAEAN = 121 , USCRIPT_INSCRIPTIONAL_PAHLAVI = 122 ,
USCRIPT_PSALTER_PAHLAVI = 123 , USCRIPT_BOOK_PAHLAVI = 124 , USCRIPT_INSCRIPTIONAL_PARTHIAN = 125 , USCRIPT_SAMARITAN = 126 ,
USCRIPT_TAI_VIET = 127 , USCRIPT_MATHEMATICAL_NOTATION = 128 , USCRIPT_SYMBOLS = 129 , USCRIPT_BAMUM = 130 ,
USCRIPT_LISU = 131 , USCRIPT_NAKHI_GEBA = 132 , USCRIPT_OLD_SOUTH_ARABIAN = 133 , USCRIPT_BASSA_VAH = 134 ,
USCRIPT_DUPLOYAN = 135 , USCRIPT_DUPLOYAN_SHORTAND = USCRIPT_DUPLOYAN , USCRIPT_ELBASAN = 136 , USCRIPT_GRANTHA = 137 ,
USCRIPT_KPELLE = 138 , USCRIPT_LOMA = 139 , USCRIPT_MENDE = 140 , USCRIPT_MEROITIC_CURSIVE = 141 ,
USCRIPT_OLD_NORTH_ARABIAN = 142 , USCRIPT_NABATAEAN = 143 , USCRIPT_PALMYRENE = 144 , USCRIPT_KHUDAWADI = 145 ,
USCRIPT_SINDHI = USCRIPT_KHUDAWADI , USCRIPT_WARANG_CITI = 146 , USCRIPT_AFAKA = 147 , USCRIPT_JURCHEN = 148 ,
USCRIPT_MRO = 149 , USCRIPT_NUSHU = 150 , USCRIPT_SHARADA = 151 , USCRIPT_SORA_SOMPENG = 152 ,
USCRIPT_TAKRI = 153 , USCRIPT_TANGUT = 154 , USCRIPT_WOLEAI = 155 , USCRIPT_ANATOLIAN_HIEROGLYPHS = 156 ,
USCRIPT_KHOJKI = 157 , USCRIPT_TIRHUTA = 158 , USCRIPT_CAUCASIAN_ALBANIAN = 159 , USCRIPT_MAHAJANI = 160 ,
USCRIPT_AHOM = 161 , USCRIPT_HATRAN = 162 , USCRIPT_MODI = 163 , USCRIPT_MULTANI = 164 ,
USCRIPT_PAU_CIN_HAU = 165 , USCRIPT_SIDDHAM = 166 , USCRIPT_ADLAM = 167 , USCRIPT_BHAIKSUKI = 168 ,
USCRIPT_MARCHEN = 169 , USCRIPT_NEWA = 170 , USCRIPT_OSAGE = 171 , USCRIPT_HAN_WITH_BOPOMOFO = 172 ,
USCRIPT_JAMO = 173 , USCRIPT_SYMBOLS_EMOJI = 174 , USCRIPT_MASARAM_GONDI = 175 , USCRIPT_SOYOMBO = 176 ,
USCRIPT_ZANABAZAR_SQUARE = 177 , USCRIPT_DOGRA = 178 , USCRIPT_GUNJALA_GONDI = 179 , USCRIPT_MAKASAR = 180 ,
USCRIPT_MEDEFAIDRIN = 181 , USCRIPT_HANIFI_ROHINGYA = 182 , USCRIPT_SOGDIAN = 183 , USCRIPT_OLD_SOGDIAN = 184 ,
USCRIPT_ELYMAIC = 185 , USCRIPT_NYIAKENG_PUACHUE_HMONG = 186 , USCRIPT_NANDINAGARI = 187 , USCRIPT_WANCHO = 188 ,
USCRIPT_CHORASMIAN = 189 , USCRIPT_DIVES_AKURU = 190 , USCRIPT_KHITAN_SMALL_SCRIPT = 191 , USCRIPT_YEZIDI = 192 ,
USCRIPT_CYPRO_MINOAN = 193 , USCRIPT_OLD_UYGHUR = 194 , USCRIPT_TANGSA = 195 , USCRIPT_TOTO = 196 ,
USCRIPT_VITHKUQI = 197 , USCRIPT_KAWI = 198 , USCRIPT_NAG_MUNDARI = 199 , USCRIPT_CODE_LIMIT = 200
}

| Constants for ISO 15924 script codes. More...
enum | UScriptUsage { USCRIPT_USAGE_NOT_ENCODED , USCRIPT_USAGE_UNKNOWN , USCRIPT_USAGE_EXCLUDED , USCRIPT_USAGE_LIMITED_USE , USCRIPT_USAGE_ASPIRATIONAL , USCRIPT_USAGE_RECOMMENDED }
| Script usage constants. More...

## Functions

U_CAPI int32_t | uscript_getCode (const char *nameOrAbbrOrLocale, UScriptCode *fillIn, int32_t capacity, UErrorCode *err)
| Gets the script codes associated with the given locale or ISO 15924 abbreviation or name. More...
U_CAPI const char * | uscript_getName (UScriptCode scriptCode)
| Returns the long Unicode script name, if there is one. More...
U_CAPI const char * | uscript_getShortName (UScriptCode scriptCode)
| Returns the 4-letter ISO 15924 script code, which is the same as the short Unicode script name if Unicode has names for the script. More...
U_CAPI UScriptCode | uscript_getScript (UChar32 codepoint, UErrorCode *err)
| Gets the script code associated with the given codepoint. More...
U_CAPI UBool | uscript_hasScript (UChar32 c, UScriptCode sc)
| Do the Script_Extensions of code point c contain script sc? If c does not have explicit Script_Extensions, then this tests whether c has the Script property value sc. More...
U_CAPI int32_t | uscript_getScriptExtensions (UChar32 c, UScriptCode *scripts, int32_t capacity, UErrorCode *errorCode)
| Writes code point c's Script_Extensions as a list of UScriptCode values to the output scripts array and returns the number of script codes. More...
U_CAPI int32_t | uscript_getSampleString (UScriptCode script, UChar *dest, int32_t capacity, UErrorCode *pErrorCode)
| Writes the script sample character string. More...
U_COMMON_API icu::UnicodeString | uscript_getSampleUnicodeString (UScriptCode script)
| Returns the script sample character string. More...
U_CAPI UScriptUsage | uscript_getUsage (UScriptCode script)
| Returns the script usage according to UAX #31 Unicode Identifier and Pattern Syntax. More...
U_CAPI UBool | uscript_isRightToLeft (UScriptCode script)
| Returns true if the script is written right-to-left. More...
U_CAPI UBool | uscript_breaksBetweenLetters (UScriptCode script)
| Returns true if the script allows line breaks between letters (excluding hyphenation). More...
U_CAPI UBool | uscript_isCased (UScriptCode script)
| Returns true if in modern (or most recent) usage of the script case distinctions are customary. More...

## Detailed Description

C API: Unicode Script Information.

Definition in file uscript.h.

## Typedef Documentation

## UScriptCode

typedef enum UScriptCode UScriptCode

Constants for ISO 15924 script codes.

The current set of script code constants supports at least all scripts that are encoded in the version of Unicode which ICU currently supports. The names of the constants are usually derived from the Unicode script property value aliases. See UAX #24 Unicode Script Property (http://www.unicode.org/reports/tr24/) and http://www.unicode.org/Public/UCD/latest/ucd/PropertyValueAliases.txt .

In addition, constants for many ISO 15924 script codes are included, for use with language tags, CLDR data, and similar. Some of those codes are not used in the Unicode Character Database (UCD). For example, there are no characters that have a UCD script property value of Hans or Hant. All Han ideographs have the Hani script property value in Unicode.

Private-use codes Qaaa..Qabx are not included, except as used in the UCD or in CLDR.

Starting with ICU 55, script codes are only added when their scripts have been or will certainly be encoded in Unicode, and have been assigned Unicode script property value aliases, to ensure that their script names are stable and match the names of the constants. Script codes like Latf and Aran that are not subject to separate encoding may be added at any time.

Stable:
  ICU 2.2

## UScriptUsage

typedef enum UScriptUsage UScriptUsage

Script usage constants.

See UAX #31 Unicode Identifier and Pattern Syntax. http://www.unicode.org/reports/tr31/#Table_Candidate_Characters_for_Exclusion_from_Identifiers

Stable:
  ICU 51

## Enumeration Type Documentation

## UScriptCode

enum UScriptCode

Constants for ISO 15924 script codes.

The current set of script code constants supports at least all scripts that are encoded in the version of Unicode which ICU currently supports. The names of the constants are usually derived from the Unicode script property value aliases. See UAX #24 Unicode Script Property (http://www.unicode.org/reports/tr24/) and http://www.unicode.org/Public/UCD/latest/ucd/PropertyValueAliases.txt .

In addition, constants for many ISO 15924 script codes are included, for use with language tags, CLDR data, and similar. Some of those codes are not used in the Unicode Character Database (UCD). For example, there are no characters that have a UCD script property value of Hans or Hant. All Han ideographs have the Hani script property value in Unicode.

Private-use codes Qaaa..Qabx are not included, except as used in the UCD or in CLDR.

Starting with ICU 55, script codes are only added when their scripts have been or will certainly be encoded in Unicode, and have been assigned Unicode script property value aliases, to ensure that their script names are stable and match the names of the constants. Script codes like Latf and Aran that are not subject to separate encoding may be added at any time.

Stable:
  ICU 2.2

Enumerator

USCRIPT_INVALID_CODE

Stable:
  ICU 2.2

USCRIPT_COMMON

Stable:
  ICU 2.2

USCRIPT_INHERITED

Stable:
  ICU 2.2

USCRIPT_ARABIC

Stable:
  ICU 2.2

USCRIPT_ARMENIAN

Stable:
  ICU 2.2

USCRIPT_BENGALI

Stable:
  ICU 2.2

USCRIPT_BOPOMOFO

Stable:
  ICU 2.2

USCRIPT_CHEROKEE

Stable:
  ICU 2.2

USCRIPT_COPTIC

Stable:
  ICU 2.2

USCRIPT_CYRILLIC

Stable:
  ICU 2.2

USCRIPT_DESERET

Stable:
  ICU 2.2

USCRIPT_DEVANAGARI

Stable:
  ICU 2.2

USCRIPT_ETHIOPIC

Stable:
  ICU 2.2

USCRIPT_GEORGIAN

Stable:
  ICU 2.2

USCRIPT_GOTHIC

Stable:
  ICU 2.2

USCRIPT_GREEK

Stable:
  ICU 2.2

USCRIPT_GUJARATI

Stable:
  ICU 2.2

USCRIPT_GURMUKHI

Stable:
  ICU 2.2

USCRIPT_HAN

Stable:
  ICU 2.2

USCRIPT_HANGUL

Stable:
  ICU 2.2

USCRIPT_HEBREW

Stable:
  ICU 2.2

USCRIPT_HIRAGANA

Stable:
  ICU 2.2

USCRIPT_KANNADA

Stable:
  ICU 2.2

USCRIPT_KATAKANA

Stable:
  ICU 2.2

USCRIPT_KHMER

Stable:
  ICU 2.2

USCRIPT_LAO

Stable:
  ICU 2.2

USCRIPT_LATIN

Stable:
  ICU 2.2

USCRIPT_MALAYALAM

Stable:
  ICU 2.2

USCRIPT_MONGOLIAN

Stable:
  ICU 2.2

USCRIPT_MYANMAR

Stable:
  ICU 2.2

USCRIPT_OGHAM

Stable:
  ICU 2.2

USCRIPT_OLD_ITALIC

Stable:
  ICU 2.2

USCRIPT_ORIYA

Stable:
  ICU 2.2

USCRIPT_RUNIC

Stable:
  ICU 2.2

USCRIPT_SINHALA

Stable:
  ICU 2.2

USCRIPT_SYRIAC

Stable:
  ICU 2.2

USCRIPT_TAMIL

Stable:
  ICU 2.2

USCRIPT_TELUGU

Stable:
  ICU 2.2

USCRIPT_THAANA

Stable:
  ICU 2.2

USCRIPT_THAI

Stable:
  ICU 2.2

USCRIPT_TIBETAN

Stable:
  ICU 2.2

USCRIPT_CANADIAN_ABORIGINAL

Canadian_Aboriginal script.

Stable:
  ICU 2.6

USCRIPT_UCAS

Canadian_Aboriginal script (alias).

Stable:
  ICU 2.2

USCRIPT_YI

Stable:
  ICU 2.2

USCRIPT_TAGALOG

Stable:
  ICU 2.2

USCRIPT_HANUNOO

Stable:
  ICU 2.2

USCRIPT_BUHID

Stable:
  ICU 2.2

USCRIPT_TAGBANWA

Stable:
  ICU 2.2

USCRIPT_BRAILLE

Stable:
  ICU 2.6

USCRIPT_CYPRIOT

Stable:
  ICU 2.6

USCRIPT_LIMBU

Stable:
  ICU 2.6

USCRIPT_LINEAR_B

Stable:
  ICU 2.6

USCRIPT_OSMANYA

Stable:
  ICU 2.6

USCRIPT_SHAVIAN

Stable:
  ICU 2.6

USCRIPT_TAI_LE

Stable:
  ICU 2.6

USCRIPT_UGARITIC

Stable:
  ICU 2.6

USCRIPT_KATAKANA_OR_HIRAGANA

New script code in Unicode 4.0.1.

Stable:
  ICU 3.0

USCRIPT_BUGINESE

Stable:
  ICU 3.4

USCRIPT_GLAGOLITIC

Stable:
  ICU 3.4

USCRIPT_KHAROSHTHI

Stable:
  ICU 3.4

USCRIPT_SYLOTI_NAGRI

Stable:
  ICU 3.4

USCRIPT_NEW_TAI_LUE

Stable:
  ICU 3.4

USCRIPT_TIFINAGH

Stable:
  ICU 3.4

USCRIPT_OLD_PERSIAN

Stable:
  ICU 3.4

USCRIPT_BALINESE

Stable:
  ICU 3.6

USCRIPT_BATAK

Stable:
  ICU 3.6

USCRIPT_BLISSYMBOLS

Stable:
  ICU 3.6

USCRIPT_BRAHMI

Stable:
  ICU 3.6

USCRIPT_CHAM

Stable:
  ICU 3.6

USCRIPT_CIRTH

Stable:
  ICU 3.6

USCRIPT_OLD_CHURCH_SLAVONIC_CYRILLIC

Stable:
  ICU 3.6

USCRIPT_DEMOTIC_EGYPTIAN

Stable:
  ICU 3.6

USCRIPT_HIERATIC_EGYPTIAN

Stable:
  ICU 3.6

USCRIPT_EGYPTIAN_HIEROGLYPHS

Stable:
  ICU 3.6

USCRIPT_KHUTSURI

Stable:
  ICU 3.6

USCRIPT_SIMPLIFIED_HAN

Stable:
  ICU 3.6

USCRIPT_TRADITIONAL_HAN

Stable:
  ICU 3.6

USCRIPT_PAHAWH_HMONG

Stable:
  ICU 3.6

USCRIPT_OLD_HUNGARIAN

Stable:
  ICU 3.6

USCRIPT_HARAPPAN_INDUS

Stable:
  ICU 3.6

USCRIPT_JAVANESE

Stable:
  ICU 3.6

USCRIPT_KAYAH_LI

Stable:
  ICU 3.6

USCRIPT_LATIN_FRAKTUR

Stable:
  ICU 3.6

USCRIPT_LATIN_GAELIC

Stable:
  ICU 3.6

USCRIPT_LEPCHA

Stable:
  ICU 3.6

USCRIPT_LINEAR_A

Stable:
  ICU 3.6

USCRIPT_MANDAIC

Stable:
  ICU 4.6

USCRIPT_MANDAEAN

Stable:
  ICU 3.6

USCRIPT_MAYAN_HIEROGLYPHS

Stable:
  ICU 3.6

USCRIPT_MEROITIC_HIEROGLYPHS

Stable:
  ICU 4.6

USCRIPT_MEROITIC

Stable:
  ICU 3.6

USCRIPT_NKO

Stable:
  ICU 3.6

USCRIPT_ORKHON

Stable:
  ICU 3.6

USCRIPT_OLD_PERMIC

Stable:
  ICU 3.6

USCRIPT_PHAGS_PA

Stable:
  ICU 3.6

USCRIPT_PHOENICIAN

Stable:
  ICU 3.6

USCRIPT_MIAO

Stable:
  ICU 52

USCRIPT_PHONETIC_POLLARD

Stable:
  ICU 3.6

USCRIPT_RONGORONGO

Stable:
  ICU 3.6

USCRIPT_SARATI

Stable:
  ICU 3.6

USCRIPT_ESTRANGELO_SYRIAC

Stable:
  ICU 3.6

USCRIPT_WESTERN_SYRIAC

Stable:
  ICU 3.6

USCRIPT_EASTERN_SYRIAC

Stable:
  ICU 3.6

USCRIPT_TENGWAR

Stable:
  ICU 3.6

USCRIPT_VAI

Stable:
  ICU 3.6

USCRIPT_VISIBLE_SPEECH

Stable:
  ICU 3.6

USCRIPT_CUNEIFORM

Stable:
  ICU 3.6

USCRIPT_UNWRITTEN_LANGUAGES

Stable:
  ICU 3.6

USCRIPT_UNKNOWN

Stable:
  ICU 3.6

USCRIPT_CARIAN

Stable:
  ICU 3.8

USCRIPT_JAPANESE

Stable:
  ICU 3.8

USCRIPT_LANNA

Stable:
  ICU 3.8

USCRIPT_LYCIAN

Stable:
  ICU 3.8

USCRIPT_LYDIAN

Stable:
  ICU 3.8

USCRIPT_OL_CHIKI

Stable:
  ICU 3.8

USCRIPT_REJANG

Stable:
  ICU 3.8

USCRIPT_SAURASHTRA

Stable:
  ICU 3.8

USCRIPT_SIGN_WRITING

Sutton SignWriting.

Stable:
  ICU 3.8

USCRIPT_SUNDANESE

Stable:
  ICU 3.8

USCRIPT_MOON

Stable:
  ICU 3.8

USCRIPT_MEITEI_MAYEK

Stable:
  ICU 3.8

USCRIPT_IMPERIAL_ARAMAIC

Stable:
  ICU 4.0

USCRIPT_AVESTAN

Stable:
  ICU 4.0

USCRIPT_CHAKMA

Stable:
  ICU 4.0

USCRIPT_KOREAN

Stable:
  ICU 4.0

USCRIPT_KAITHI

Stable:
  ICU 4.0

USCRIPT_MANICHAEAN

Stable:
  ICU 4.0

USCRIPT_INSCRIPTIONAL_PAHLAVI

Stable:
  ICU 4.0

USCRIPT_PSALTER_PAHLAVI

Stable:
  ICU 4.0

USCRIPT_BOOK_PAHLAVI

Stable:
  ICU 4.0

USCRIPT_INSCRIPTIONAL_PARTHIAN

Stable:
  ICU 4.0

USCRIPT_SAMARITAN

Stable:
  ICU 4.0

USCRIPT_TAI_VIET

Stable:
  ICU 4.0

USCRIPT_MATHEMATICAL_NOTATION

Stable:
  ICU 4.0

USCRIPT_SYMBOLS

Stable:
  ICU 4.0

USCRIPT_BAMUM

Stable:
  ICU 4.4

USCRIPT_LISU

Stable:
  ICU 4.4

USCRIPT_NAKHI_GEBA

Stable:
  ICU 4.4

USCRIPT_OLD_SOUTH_ARABIAN

Stable:
  ICU 4.4

USCRIPT_BASSA_VAH

Stable:
  ICU 4.6

USCRIPT_DUPLOYAN

Stable:
  ICU 54

USCRIPT_DUPLOYAN_SHORTAND

Deprecated:
  ICU 54 Typo, use USCRIPT_DUPLOYAN

USCRIPT_ELBASAN

Stable:
  ICU 4.6

USCRIPT_GRANTHA

Stable:
  ICU 4.6

USCRIPT_KPELLE

Stable:
  ICU 4.6

USCRIPT_LOMA

Stable:
  ICU 4.6

USCRIPT_MENDE

Mende Kikakui.

Stable:
  ICU 4.6

USCRIPT_MEROITIC_CURSIVE

Stable:
  ICU 4.6

USCRIPT_OLD_NORTH_ARABIAN

Stable:
  ICU 4.6

USCRIPT_NABATAEAN

Stable:
  ICU 4.6

USCRIPT_PALMYRENE

Stable:
  ICU 4.6

USCRIPT_KHUDAWADI

Stable:
  ICU 54

USCRIPT_SINDHI

Stable:
  ICU 4.6

USCRIPT_WARANG_CITI

Stable:
  ICU 4.6

USCRIPT_AFAKA

Stable:
  ICU 4.8

USCRIPT_JURCHEN

Stable:
  ICU 4.8

USCRIPT_MRO

Stable:
  ICU 4.8

USCRIPT_NUSHU

Stable:
  ICU 4.8

USCRIPT_SHARADA

Stable:
  ICU 4.8

USCRIPT_SORA_SOMPENG

Stable:
  ICU 4.8

USCRIPT_TAKRI

Stable:
  ICU 4.8

USCRIPT_TANGUT

Stable:
  ICU 4.8

USCRIPT_WOLEAI

Stable:
  ICU 4.8

USCRIPT_ANATOLIAN_HIEROGLYPHS

Stable:
  ICU 49

USCRIPT_KHOJKI

Stable:
  ICU 49

USCRIPT_TIRHUTA

Stable:
  ICU 49

USCRIPT_CAUCASIAN_ALBANIAN

Stable:
  ICU 52

USCRIPT_MAHAJANI

Stable:
  ICU 52

USCRIPT_AHOM

Stable:
  ICU 54

USCRIPT_HATRAN

Stable:
  ICU 54

USCRIPT_MODI

Stable:
  ICU 54

USCRIPT_MULTANI

Stable:
  ICU 54

USCRIPT_PAU_CIN_HAU

Stable:
  ICU 54

USCRIPT_SIDDHAM

Stable:
  ICU 54

USCRIPT_ADLAM

Stable:
  ICU 58

USCRIPT_BHAIKSUKI

Stable:
  ICU 58

USCRIPT_MARCHEN

Stable:
  ICU 58

USCRIPT_NEWA

Stable:
  ICU 58

USCRIPT_OSAGE

Stable:
  ICU 58

USCRIPT_HAN_WITH_BOPOMOFO

Stable:
  ICU 58

USCRIPT_JAMO

Stable:
  ICU 58

USCRIPT_SYMBOLS_EMOJI

Stable:
  ICU 58

USCRIPT_MASARAM_GONDI

Stable:
  ICU 60

USCRIPT_SOYOMBO

Stable:
  ICU 60

USCRIPT_ZANABAZAR_SQUARE

Stable:
  ICU 60

USCRIPT_DOGRA

Stable:
  ICU 62

USCRIPT_GUNJALA_GONDI

Stable:
  ICU 62

USCRIPT_MAKASAR

Stable:
  ICU 62

USCRIPT_MEDEFAIDRIN

Stable:
  ICU 62

USCRIPT_HANIFI_ROHINGYA

Stable:
  ICU 62

USCRIPT_SOGDIAN

Stable:
  ICU 62

USCRIPT_OLD_SOGDIAN

Stable:
  ICU 62

USCRIPT_ELYMAIC

Stable:
  ICU 64

USCRIPT_NYIAKENG_PUACHUE_HMONG

Stable:
  ICU 64

USCRIPT_NANDINAGARI

Stable:
  ICU 64

USCRIPT_WANCHO

Stable:
  ICU 64

USCRIPT_CHORASMIAN

Stable:
  ICU 66

USCRIPT_DIVES_AKURU

Stable:
  ICU 66

USCRIPT_KHITAN_SMALL_SCRIPT

Stable:
  ICU 66

USCRIPT_YEZIDI

Stable:
  ICU 66

USCRIPT_CYPRO_MINOAN

Stable:
  ICU 70

USCRIPT_OLD_UYGHUR

Stable:
  ICU 70

USCRIPT_TANGSA

Stable:
  ICU 70

USCRIPT_TOTO

Stable:
  ICU 70

USCRIPT_VITHKUQI

Stable:
  ICU 70

USCRIPT_KAWI

Stable:
  ICU 72

USCRIPT_NAG_MUNDARI

Stable:
  ICU 72

USCRIPT_CODE_LIMIT

One more than the highest normal UScriptCode value.

The highest value is available via u_getIntPropertyMaxValue(UCHAR_SCRIPT).

Deprecated:
  ICU 58 The numeric value may change over time, see ICU ticket #12420.

Definition at line 54 of file uscript.h.

## UScriptUsage

enum UScriptUsage

Script usage constants.

See UAX #31 Unicode Identifier and Pattern Syntax. http://www.unicode.org/reports/tr31/#Table_Candidate_Characters_for_Exclusion_from_Identifiers

Stable:
  ICU 51

Enumerator

USCRIPT_USAGE_NOT_ENCODED

Not encoded in Unicode.

Stable:
  ICU 51

USCRIPT_USAGE_UNKNOWN

Unknown script usage.

Stable:
  ICU 51

USCRIPT_USAGE_EXCLUDED

Candidate for Exclusion from Identifiers.

Stable:
  ICU 51

USCRIPT_USAGE_LIMITED_USE

Limited Use script.

Stable:
  ICU 51

USCRIPT_USAGE_ASPIRATIONAL

Aspirational Use script.

Stable:
  ICU 51

USCRIPT_USAGE_RECOMMENDED

Recommended script.

Stable:
  ICU 51

Definition at line 628 of file uscript.h.

## Function Documentation

## uscript_breaksBetweenLetters()

U_CAPI UBool uscript_breaksBetweenLetters | ( | UScriptCode | script | ) |

Returns true if the script allows line breaks between letters (excluding hyphenation).

Such a script typically requires dictionary-based line breaking. For example, Hani and Thai.

Parameters

  script | script code

Returns
  true if the script allows line breaks between letters

Stable:
  ICU 51

## uscript_getCode()

U_CAPI int32_t uscript_getCode | ( | const char * | nameOrAbbrOrLocale,
|  | UScriptCode * | fillIn,
|  | int32_t | capacity,
|  | UErrorCode * | err
| ) |  |

Gets the script codes associated with the given locale or ISO 15924 abbreviation or name.

Fills in USCRIPT_MALAYALAM given "Malayam" OR "Mlym". Fills in USCRIPT_LATIN given "en" OR "en_US" If the required capacity is greater than the capacity of the destination buffer, then the error code is set to U_BUFFER_OVERFLOW_ERROR and the required capacity is returned.

Note: To search by short or long script alias only, use u_getPropertyValueEnum(UCHAR_SCRIPT, alias) instead. That does a fast lookup with no access of the locale data.

Parameters

  nameOrAbbrOrLocale | name of the script, as given in PropertyValueAliases.txt, or ISO 15924 code or locale
  fillIn | the UScriptCode buffer to fill in the script code
  capacity | the capacity (size) of UScriptCode buffer passed in.
  err | the error status code.

Returns
  The number of script codes filled in the buffer passed in

Stable:
  ICU 2.4

## uscript_getName()

U_CAPI const char* uscript_getName | ( | UScriptCode | scriptCode | ) |

Returns the long Unicode script name, if there is one.

Otherwise returns the 4-letter ISO 15924 script code. Returns "Malayam" given USCRIPT_MALAYALAM.

Parameters

  scriptCode | UScriptCode enum

Returns
  long script name as given in PropertyValueAliases.txt, or the 4-letter code, or NULL if scriptCode is invalid

Stable:
  ICU 2.4

## uscript_getSampleString()

U_CAPI int32_t uscript_getSampleString | ( | UScriptCode | script,
|  | UChar * | dest,
|  | int32_t | capacity,
|  | UErrorCode * | pErrorCode
| ) |  |

Writes the script sample character string.

This string normally consists of one code point but might be longer. The string is empty if the script is not encoded.

Parameters

  script | script code
  dest | output string array
  capacity | number of UChars in the dest array
  pErrorCode | standard ICU in/out error code, must pass U_SUCCESS() on input

Returns
  the string length, even if U_BUFFER_OVERFLOW_ERROR

Stable:
  ICU 51

## uscript_getSampleUnicodeString()

U_COMMON_API icu::UnicodeString uscript_getSampleUnicodeString | ( | UScriptCode | script | ) |

Returns the script sample character string.

This string normally consists of one code point but might be longer. The string is empty if the script is not encoded.

Parameters

  script | script code

Returns
  the sample character string

Stable:
  ICU 51

## uscript_getScript()

U_CAPI UScriptCode uscript_getScript | ( | UChar32 | codepoint,
|  | UErrorCode * | err
| ) |  |

Gets the script code associated with the given codepoint.

Returns USCRIPT_MALAYALAM given 0x0D02

Parameters

  codepoint | UChar32 codepoint
  err | the error status code.

Returns
  The UScriptCode, or 0 if codepoint is invalid

Stable:
  ICU 2.4

## uscript_getScriptExtensions()

U_CAPI int32_t uscript_getScriptExtensions | ( | UChar32 | c,
|  | UScriptCode * | scripts,
|  | int32_t | capacity,
|  | UErrorCode * | errorCode
| ) |  |

Writes code point c's Script_Extensions as a list of UScriptCode values to the output scripts array and returns the number of script codes.

- If c does have Script_Extensions, then the Script property value (normally Common or Inherited) is not included.
- If c does not have Script_Extensions, then the one Script code is written to the output array.
- If c is not a valid code point, then the one USCRIPT_UNKNOWN code is written. In other words, if the return value is 1, then the output array contains exactly c's single Script code. If the return value is n>=2, then the output array contains c's n Script_Extensions script codes.

Some characters are commonly used in multiple scripts. For more information, see UAX #24: http://www.unicode.org/reports/tr24/.

If there are more than capacity script codes to be written, then U_BUFFER_OVERFLOW_ERROR is set and the number of Script_Extensions is returned. (Usual ICU buffer handling behavior.)

Parameters

  c | code point
  scripts | output script code array
  capacity | capacity of the scripts array
  errorCode | Standard ICU error code. Its input value must pass the U_SUCCESS() test, or else the function returns immediately. Check for U_FAILURE() on output or use with function chaining. (See User Guide for details.)

Returns
  number of script codes in c's Script_Extensions, or 1 for the single Script value, written to scripts unless U_BUFFER_OVERFLOW_ERROR indicates insufficient capacity

Stable:
  ICU 49

## uscript_getShortName()

U_CAPI const char* uscript_getShortName | ( | UScriptCode | scriptCode | ) |

Returns the 4-letter ISO 15924 script code, which is the same as the short Unicode script name if Unicode has names for the script.

Returns "Mlym" given USCRIPT_MALAYALAM.

Parameters

  scriptCode | UScriptCode enum

Returns
  short script name (4-letter code), or NULL if scriptCode is invalid

Stable:
  ICU 2.4

## uscript_getUsage()

U_CAPI UScriptUsage uscript_getUsage | ( | UScriptCode | script | ) |

Returns the script usage according to UAX #31 Unicode Identifier and Pattern Syntax.

Returns USCRIPT_USAGE_NOT_ENCODED if the script is not encoded in Unicode.

Parameters

  script | script code

Returns
  script usage

See also
  UScriptUsage

Stable:
  ICU 51

## uscript_hasScript()

U_CAPI UBool uscript_hasScript | ( | UChar32 | c,
|  | UScriptCode | sc
| ) |  |

Do the Script_Extensions of code point c contain script sc? If c does not have explicit Script_Extensions, then this tests whether c has the Script property value sc.

Some characters are commonly used in multiple scripts. For more information, see UAX #24: http://www.unicode.org/reports/tr24/.

Parameters

  c | code point
  sc | script code

Returns
  true if sc is in Script_Extensions(c)

Stable:
  ICU 49

## uscript_isCased()

U_CAPI UBool uscript_isCased | ( | UScriptCode | script | ) |

Returns true if in modern (or most recent) usage of the script case distinctions are customary.

For example, Latn and Cyrl.

Parameters

  script | script code

Returns
  true if the script is cased

Stable:
  ICU 51

## uscript_isRightToLeft()

U_CAPI UBool uscript_isRightToLeft | ( | UScriptCode | script | ) |

Returns true if the script is written right-to-left.

For example, Arab and Hebr.

Parameters

  script | script code

Returns
  true if the script is right-to-left

Stable:
  ICU 51