Get the latest tech news

It’s not wrong that "\u{1F926}\u{1F3FC}\u200D\u2642\uFE0F".length == 7 (2019)


🤦🏼♂️".length == 7 "🤦🏼♂️".len() == 17 and Rather Useless that len("🤦🏼♂️") == 5 From time to time, someone shows that in JavaScript the .length of a string containing an emoji results in a number greater than 1 (typically 2) and then proceeds to the conclusion that haha JavaScript is so broken—and is rewarded with many likes. In this post, I will try to convince you that ridiculing JavaScript for this is less insightful than it first appears and that Swift’s approach to string length isn’t unambiguously the best one.

When wider-unit semantics are chosen for a language that doesn’t provide raw memory access and, therefore, has the opportunity to tweak string storage, the implementations try to come up with ways to avoid actually paying the cost of the wider units in some situations. It’s easy to believe that the Swift approach nudges programmers to write more extended grapheme cluster-correct code and that the design makes sense for a language meant primarily for UI programming on a largely evergreen platform (iOS). NameUTF-8Δ%UTF-16Δ%UTF-32Δ%EGCΔ%EAWΔ%Script Cashinahua 4170-57.64135-53.04135-52.94135-52.34135-52.4Latn Ashéninka Perené 4170-57.64135-53.04135-52.94135-52.34135-52.4Latn Waama 4293-56.34011-54.44011-54.44007-53.84007-53.9Latn Chickasaw 4850-50.64685-46.74685-46.74587-47.14587-47.2Latn Bulu 4919-49.94808-45.34808-45.34808-44.54808-44.7Latn Kulango, Bouna 5286-46.24164-52.64164-52.64164-51.94164-52.1Latn Zapotec, Miahuatlán 5464-44.45433-38.25433-38.25433-37.35433-37.5Latn Nyamwezi 5750-41.55686-35.35686-35.35686-34.45686-34.6Latn Kaonde 5972-39.25972-32.15972-32.05972-31.15972-31.3Latn Mixtec, Metlatónoc 6023-38.75630-36.05630-35.95611-35.25611-35.4Latn Makonde 6100-37.95946-32.45946-32.35946-31.45946-31.6Latn Sharanahua 6165-37.36162-29.96162-29.96162-28.96162-29.1Latn Serer-Sine 6166-37.36079-30.96079-30.86079-29.86079-30.0Latn Dinka, Northeastern 6214-36.85815-33.95815-33.85775-33.45775-33.5Latn Okiek 6272-36.26272-28.76272-28.66272-27.66271-27.8Latn Jola-Fonyi 6299-35.96122-30.46122-30.36122-29.36122-29.5Latn Maninkakan, Eastern 6372-35.25867-33.35867-33.25867-32.35867-32.5Latn Chinantec, Ojitlán 6463-34.25957-32.35957-32.25957-31.35957-31.4Latn Soninke 6496-33.96430-26.96430-26.86430-25.86430-26.0Latn Chokwe (Angola) 6596-32.96565-25.36565-25.36565-24.26565-24.4Latn Chinese, Mandarin (Traditional) 6606-32.82202-75.02202-74.92202-74.64404-49.3Hant Otomi, Mezquital 6614-32.76438-26.86438-26.76379-26.46379-26.6Latn Chinese, Mandarin (Simplified) 6708-31.72278-74.12278-74.12278-73.74493-48.3Hans Quechua (Unified Quichua, old Hispanic orthography) 6713-31.76670-24.26670-24.16670-23.06670-23.2Latn Shilluk 6798-30.86036-31.46036-31.36036-30.36036-30.5Latn Colorado 6798-30.86797-22.76797-22.76796-21.66794-21.8Latn Dendi 6823-30.66327-28.16327-28.06325-27.06325-27.2Latn Chinese, Jinyu 6848-30.32284-74.02284-74.02284-73.64566-47.4Hans Chinese, Min Nan 6887-29.92297-73.92297-73.92297-73.54592-47.1Hans Chinese, Gan 6889-29.92297-73.92297-73.92297-73.54593-47.1Hans Vietnamese (Han nom) 6910-29.72564-70.82224-74.72224-74.34397-49.4Hani Chinese, Hakka 6929-29.52311-73.72311-73.72311-73.34620-46.8Hans Lunda 6968-29.16968-20.86968-20.76968-19.66968-19.8Latn Chinese, Yue 6973-29.02325-73.62325-73.52325-73.24648-46.5Hani Pular 6991-28.96991-20.56991-20.46991-19.36991-19.5Latn Limba, West-Central 7007-28.76257-28.86257-28.86257-27.86257-28.0Latn Naga, Ao 7019-28.66729-23.56729-23.46729-22.36729-22.5Latn Mazahua Central 7052-28.26750-23.26750-23.26517-24.86517-25.0Latn Chinese, Wu 7082-27.92362-73.12362-73.12362-72.74722-45.6Hans Kpelle, Guinea 7139-27.46136-30.26136-30.26136-29.26136-29.4Latn Amis 7206-26.77206-18.17206-18.07206-16.87206-17.1Latn Baatonum 7255-26.26788-22.86788-22.86779-21.86779-22.0Latn Tetun 7280-25.97280-17.27280-17.27280-16.07280-16.2Latn Chinantec, Chiltepec 7304-25.76468-26.46468-26.46262-27.76262-27.9Latn(Maiunan) 7312-25.67312-16.97312-16.87312-15.67312-15.8Latn Tetun Dili 7357-25.17225-17.87225-17.87225-16.67225-16.8Latn(Minjiang, written) 7366-25.07363-16.37363-16.27363-15.07363-15.3Latn Quechua, Cusco 7369-25.07309-16.97309-16.87309-15.67309-15.9Latn(Mijisa) 7393-24.87393-15.97393-15.97393-14.77392-14.9Latn Drung 7412-24.67412-15.77412-15.77412-14.57412-14.7Latn Mazatec, Ixcatlán 7442-24.37261-17.47261-17.47261-16.27261-16.4Latn Rwanda 7456-24.17456-15.27456-15.27456-14.07456-14.2Latn(Minjiang, spoken) 7512-23.67509-14.67509-14.67509-13.37509-13.6Latn Sukuma 7532-23.47452-15.37452-15.27452-14.07452-14.2Latn Makhuwa 7562-23.07398-15.97398-15.87398-14.67398-14.8Latn Aymara, Central 7568-23.07363-16.37363-16.27363-15.07363-15.3Latn Ido 7580-22.97580-13.87580-13.77580-12.57580-12.8Latn Záparo 7591-22.87583-13.87583-13.77583-12.57583-12.7Latn Bamanankan 7597-22.76890-21.76890-21.66890-20.56890-20.7Latn Nyankore 7628-22.47628-13.37628-13.27628-12.07628-12.2Latn Ndebele 7659-22.17659-12.97659-12.87659-11.67659-11.8Latn Sãotomense 7712-21.56956-20.96956-20.86956-19.76956-19.9Latn Pijin 7716-21.57716-12.37716-12.27716-11.07716-11.2Latn Latin 7747-21.27747-11.97747-11.87747-10.67747-10.8Latn Susu 7757-21.17310-16.97310-16.87310-15.67310-15.9Latn Oroqen 7768-21.07761-11.77761-11.77761-10.47761-10.7Latn Lozi 7825-20.47825-11.07825-11.07825-9.77825-9.9Latn Latin (1) 7869-19.97869-10.57869-10.57869-9.27869-9.4Latn Otuho 7890-19.77890-10.37890-10.27801-10.07712-11.2Latn Achuar-Shiwiar (1) 7893-19.77842-10.87842-10.87785-10.27728-11.0Latn Huastec (Veracruz) 7911-19.57882-10.47882-10.37882-9.07882-9.3Latn Umbundu (011) 7941-19.27910-10.17910-10.07910-8.77910-9.0Latn Nuosu 7953-19.12663-69.72663-69.72663-69.35308-38.9Yiii Even 7969-18.94320-50.94320-50.84320-50.14320-50.3Cyrl Q'eqchi' 7981-18.87981-9.27981-9.27981-7.97981-8.1Latn Moba 7985-18.77726-12.17726-12.17726-10.87726-11.1Latn Mam, Northern 7994-18.77994-9.17994-9.07994-7.77994-8.0Latn Kabiyé 7997-18.66193-29.66193-29.56193-28.56193-28.7Latn Kanuri, Central 8077-17.87621-13.37621-13.37621-12.07621-12.3Latn Esperanto 8095-17.67930-9.87930-9.87930-8.57930-8.7Latn Serbian (Latin) 8102-17.67876-10.47876-10.47876-9.17876-9.3Latn Urarina 8127-17.38125-7.68125-7.58125-6.28125-6.5Latn Kurdish, Central 8163-16.97462-15.17462-15.17462-13.97462-14.1Latn Kurdish, Northern 8163-16.97462-15.17462-15.17462-13.97462-14.1Latn Huitoto, Murui 8179-16.87523-14.57523-14.47523-13.27523-13.4Latn Croatian 8201-16.57996-9.17996-9.07996-7.77996-8.0Latn Bemba 8206-16.58206-6.78206-6.68206-5.38206-5.5Latn Waorani 8209-16.58137-7.58137-7.48052-7.17967-8.3Latn Gonja 8215-16.47579-13.87579-13.87579-12.57579-12.8Latn Scots 8224-16.38224-6.58224-6.48224-5.18224-5.3Latn Ndonga 8239-16.28239-6.38239-6.28239-4.98239-5.2Latn Garifuna 8243-16.17721-12.27721-12.17721-10.97721-11.1Latn Bosnian (Latin) 8259-16.08049-8.58049-8.48049-7.18049-7.4Latn Twi (Akuapem) 8264-15.97653-13.07653-12.97653-11.77653-11.9Latn Zulu 8265-15.98261-6.18261-6.08261-4.78261-4.9Latn Guarayu 8280-15.78098-7.98098-7.98098-6.58098-6.8Latn Swahili 8315-15.48315-5.48315-5.48315-4.08315-4.3Latn Zhuang, Yongbei 8318-15.48316-5.48316-5.48316-4.08316-4.3Latn Wolof 8321-15.37940-9.77940-9.67940-8.47940-8.6Latn Zapotec, Güilá 8364-14.98328-5.38328-5.28328-3.98328-4.1Latn Oromo, Borana-Arsi-Guji 8381-14.78381-4.78381-4.68381-3.38381-3.5Latn Welsh 8382-14.78247-6.28247-6.28247-4.88247-5.1Latn Tok Pisin 8399-14.58393-4.68393-4.58393-3.18393-3.4Latn Awa-Cuaiquer 8405-14.58391-4.68391-4.58309-4.18227-5.3Latn Luvale 8411-14.48411-4.48411-4.38411-2.98411-3.2Latn Crioulo, Upper Guinea (008) 8414-14.48225-6.58225-6.48225-5.18225-5.3Latn Afrikaans 8427-14.28365-4.98365-4.88365-3.58365-3.7Latn Faroese 8454-14.07854-10.77854-10.67854-9.47854-9.6Latn Fulfulde, Nigerian 8455-14.08135-7.58135-7.48135-6.18135-6.4Latn Norwegian, Nynorsk 8461-13.98268-6.08268-5.98268-4.68268-4.8Latn Yagua 8468-13.88432-4.18432-4.18432-2.78432-2.9Latn Rundi 8498-13.58498-3.48498-3.38498-1.98498-2.2Latn Norwegian, Bokmål 8500-13.58360-4.98360-4.98360-3.58360-3.8Latn Umbundu 8503-13.58415-4.38415-4.28415-2.98415-3.1Latn English 8565-12.88555-2.78555-2.78555-1.38555-1.5Latn Yao 8574-12.88574-2.58574-2.48574-1.18574-1.3Latn Nomatsiguenga 8575-12.78432-4.18432-4.18432-2.78432-2.9Latn Mapudungun 8585-12.68366-4.98366-4.88366-3.58366-3.7Latn Fijian 8586-12.68584-2.48584-2.38584-0.98584-1.2Latn Tamazight, Central Atlas 8587-12.68226-6.58226-6.48226-5.18226-5.3Latn Nyanja (Chinyanja) 8590-12.68590-2.38590-2.38590-0.98590-1.1Latn Yapese 8635-12.18473-3.78473-3.68473-2.28473-2.5Latn Crioulo, Upper Guinea 8636-12.18632-1.88632-1.88632-0.48632-0.6Latn Secoya 8651-12.08155-7.38155-7.28137-6.18137-6.3Latn Wayuu 8664-11.88077-8.28077-8.18077-6.88077-7.0Latn Lingala 8668-11.88654-1.68654-1.58654-0.18654-0.4Latn Haitian Creole French (Kreyol) 8680-11.78535-2.98535-2.98535-1.58535-1.8Latn Tonga 8685-11.68685-1.28685-1.286850.28685-0.0Latn Seselwa Creole French 8706-11.48697-1.18697-1.086970.486970.1Latn Mende 8707-11.48010-8.98010-8.98010-7.68010-7.8Latn Nyanja (Chechewa) 8725-11.28725-0.88725-0.787250.787250.4Latn Hani 8767-10.88767-0.38767-0.287671.287670.9Latn Slovenian 8772-10.78520-3.18520-3.08520-1.78520-1.9Latn Hmong, Southern Qiandong 8792-10.58792-0.087920.087921.587921.2Latn Chokwe 8808-10.488080.288080.288081.788081.4Latn Pipil 8831-10.188250.488250.488251.888251.6Latn(Bizisa) 8847-10.088470.688470.788472.188471.8Latn Quechua, Cajamarca 8858-9.988510.688510.788512.188511.9Latn Kasem 8868-9.88445-4.08445-3.98445-2.58445-2.8Latn Romani, Balkan 8875-9.78606-2.18606-2.18606-0.78606-0.9Latn Turkish 8877-9.78225-6.58225-6.48225-5.18225-5.3Latn Fante 8898-9.58229-6.48229-6.48229-5.08229-5.3Latn Basque 8907-9.489071.389071.489072.889072.5Latn Ganda 8962-8.889621.989622.089623.489623.2Latn Occitan 8963-8.88661-1.58661-1.48661-0.08661-0.3Latn Xhosa 8969-8.788811.088811.188812.588812.2Latn Breton 8982-8.68661-1.58661-1.48661-0.08661-0.3Latn Veps 8985-8.68428-4.28428-4.18428-2.78428-3.0Latn Quechua, Arequipa-La Unión 8988-8.589692.089692.189693.589693.2Latn Friulian 9003-8.48688-1.28688-1.186880.386880.0Latn Swedish 9008-8.38612-2.18612-2.08612-0.68612-0.9Latn Danish 9010-8.388310.488310.588311.988311.6Latn Aromanian 9020-8.28694-1.18694-1.186940.386940.1Latn Madura 9023-8.290232.690232.790234.190233.9Latn Romani, Balkan (1) 9035-8.18739-0.68739-0.687390.987390.6Latn Chayahuita 9065-7.88639-1.88639-1.78639-0.38639-0.6Latn Icelandic 9070-7.78249-6.28249-6.18249-4.88249-5.1Latn Krio 9086-7.58139-7.48139-7.48139-6.18139-6.3Latn Estonian 9093-7.588000.188000.188001.688001.3Latn Aja 9099-7.48077-8.28077-8.18069-6.98069-7.1Latn Sorbian, Upper 9108-7.38442-4.08442-3.98442-2.68442-2.8Latn Sotho, Southern 9136-7.091363.991364.091365.491365.2Latn Catalan-Valencian-Balear 9141-7.088230.388230.488231.888231.6Latn Luba-Kasai 9143-7.091434.091434.091435.591435.2Latn Minangkabau 9175-6.691674.291674.391675.891675.5Latn Bari 9178-6.68555-2.78555-2.78555-1.38555-1.5Latn Portuguese (Brazil) 9219-6.288871.188871.188872.688872.3Latn Huastec (San Luís Potosí) 9222-6.288260.488260.488261.988261.6Latn Czech 9225-6.18126-7.68126-7.58126-6.28126-6.5Latn Purepecha 9234-6.090823.390823.390824.890824.5Latn Fon 9244-5.97952-9.67952-9.57943-8.37943-8.6Latn Twi (Asante) 9246-5.98374-4.88374-4.78374-3.48374-3.6Latn Papiamentu 9249-5.992375.092375.192376.692376.3Latn Slovak 9266-5.78378-4.78378-4.78378-3.38378-3.6Latn Malagasy, Plateau 9272-5.692725.492725.592727.092726.7Latn Romansch (Vallader) 9300-5.490482.990483.090484.490484.1Latn Ladin 9324-5.18740-0.68740-0.587400.987400.6Latn Mbundu 9327-5.193175.993176.093177.593177.2Latn Occitan (Auvergnat) 9330-5.18642-1.78642-1.78642-0.38642-0.5Latn Lithuanian 9339-5.087940.087940.187941.587941.2Latn Ladino 9348-4.993456.393456.393457.893457.6Latn Mískito 9353-4.893456.393456.393457.893457.6Latn Assyrian Neo-Aramaic 9363-4.75186-41.05186-41.05127-40.85127-41.0Syrc Waray-Waray 9387-4.593876.793876.893878.393878.0Latn Korean 9391-4.43856-56.23856-56.13856-55.56623-23.8Hang Somali 9403-4.394036.994037.094038.594038.2Latn Finnish 9404-4.390232.690232.790234.190233.9Latn Romansch (Sursilvan) 9421-4.193005.893005.893007.393007.0Latn Chin, Tedim 9441-3.994317.294317.394318.894318.6Latn Latvian 9447-3.98582-2.48582-2.38582-1.08582-1.2Latn Romansch (Grischun) 9449-3.892935.792935.792937.292937.0Latn Gagauz 9451-3.88510-3.28510-3.28510-1.88510-2.0Latn Dagbani 9458-3.888961.288961.288962.788962.4Latn Finnish, Kven 9464-3.791233.791233.891235.391235.0Latn Corsican 9475-3.689221.589221.589223.089222.7Latn Koongo (Angola) 9486-3.594167.194167.194168.793567.7Latn Ditammari 9487-3.57867-10.57867-10.57748-10.67748-10.8Latn Portuguese (Portugal) 9501-3.391544.191544.291545.691545.4Latn Manx 9504-3.394407.394407.494408.994408.7Latn Chamorro 9506-3.395048.195048.195049.795049.4Latn Galician 9510-3.292234.992234.992236.492236.2Latn Occitan (Languedocien) 9522-3.193646.593646.693648.193647.8Latn Romansch (Puter) 9538-2.993035.893035.993037.493037.1Latn Ligurian 9557-2.789421.789421.889423.289422.9Latn Quechua, Huaylas Ancash 9563-2.794717.794717.894719.394719.0Latn Mizo 9576-2.694897.994898.094899.594899.2Latn Tiv 9585-2.594907.994908.094909.594909.2Latn Interlingua 9588-2.495889.095889.1958810.7958810.4Latn Koongo 9596-2.495969.195969.2959610.7959610.5Latn Pohnpeian 9603-2.396039.296039.3960310.8960310.5Latn Polish 9613-2.291113.691113.791115.191114.9Latn Ga 9614-2.28262-6.08262-6.08257-4.78257-5.0Latn Kituba 9630-2.096309.596309.6963011.1963010.8Latn Palauan 9654-1.896549.896549.9965411.4965411.1Latn Guaraní, Paraguayan 9658-1.789561.889561.989563.489563.1Latn Frisian, Western 9660-1.794958.094958.094959.694959.3Latn Albanian, Tosk 9703-1.389722.089722.189723.589723.3Latn Italian 9739-0.9967410.0967410.1967411.6967411.3Latn Marshallese 9758-0.7975811.0975811.0975812.6975812.3Latn Spanish 9759-0.795748.995748.9957410.5957410.2Latn Venetian 9764-0.690833.390833.490834.890834.5Latn Romansch (Sutsilvan) 9764-0.694597.694597.694599.294598.9Latn Huastec (Sierra de Otontepec) 9778-0.594307.294307.394308.894308.5Latn Comorian, Ngazidja 9783-0.4978311.2978311.3978312.9978312.6Latn Lamnso' 9792-0.47828-11.07828-10.97648-11.77648-12.0Latn Hawaiian 9812-0.28588-2.38588-2.38588-0.98588-1.2Latn Romansch (Surmiran) 98270.096629.996629.9966211.5966211.2Latn German, Standard (1996) 98280.0969610.3969610.3969611.9969611.6Latn Mixe, Totontepec 98290.08351-5.08351-5.08351-3.68351-3.9Latn German, Standard (1901) 98300.0969210.2969210.3969211.9969211.6Latn Talysh 98360.18180-7.08180-6.98180-5.68180-5.8Latn Aceh 98450.2972910.6972910.7972912.3972912.0Latn Maltese 98460.291984.691984.791986.291985.9Latn Chin, Matu 98540.3984011.9984012.0984013.6984013.3Latn Asturian 98580.396369.696369.6963611.2963610.9Latn Gaelic, Scottish 98590.396469.796469.8964611.3964611.0Latn Chuukese 98780.5987812.3987812.4987814.0987813.7Latn Nyemba 98820.6988112.4988112.4988114.0988113.7Latn Amarakaeri 99170.994998.094998.190864.990864.6Latn Candoshi-Shapra 99180.9986212.1986212.2986213.8986213.5Latn Siona 99331.191614.291614.288261.987480.7Latn Dangme 99361.187960.087960.187791.387791.0Latn Shona 99431.2994313.1994313.1994314.7994314.4Latn Páez 99801.6986912.2986912.3986913.9986913.6Latn Romansch 100031.8986612.2986612.3986613.9986613.6Latn Pampangan 100051.81000513.81000513.81000515.51000515.2Latn Cebuano 100081.81000813.81000813.91000815.51000815.2Latn Tagalog 100131.91001313.91001313.91001315.61001315.3Latn Romagnolo 100292.195118.295118.295119.895119.5Latn French 100302.195989.195989.2959810.8959810.5Latn Sotho, Northern 100362.1977111.1977111.2977112.8977112.5Latn Indonesian 100592.41005914.41005914.51005916.11005915.8Latn Tswana 100672.41004714.21004714.31004715.91004715.6Latn Bugis 100702.51007014.51007014.61007016.21007015.9Latn Sunda 100712.51007114.51007114.61007116.21007115.9Latn Uzbek, Northern (Latin) 100882.7983611.8983611.9983613.5983613.2Latn Gaelic, Irish 101142.995919.195919.1959110.7959110.4Latn Hindustani, Sarnami 101162.9996313.3996313.4996315.0996314.7Latn Tzeltal, Oxchuc 101193.0978011.2978011.3978012.9978012.6Latn Turkmen (Latin) 101243.091854.491854.591856.091855.7Latn Dagaare, Southern 101413.294958.094958.094779.494779.1Latn Igbo 101513.38653-1.68653-1.58653-0.18653-0.4Latn Picard 101513.391754.391754.491755.991755.6Latn Micmac 101623.492345.092345.192346.692346.3Latn Uyghur (Latin) 101863.7999913.7999913.8999915.4999915.1Latn Malay (Latin) 101893.71018815.91018815.91018817.61018817.3Latn Azerbaijani, North (Latin) 101983.88717-0.98717-0.887170.687170.3Latn Japanese 102274.13437-60.93437-60.93437-60.36832-21.4Jpan Bislama 102334.11023316.41023316.41023318.11023317.8Latn Bali 102354.21023516.41023516.51023518.11023517.8Latn Occitan (Francoprovençal, Savoie) 102404.28665-1.58665-1.486650.08665-0.3Latn Themne 102444.28323-5.48323-5.38323-3.98323-4.2Latn Karelian 102454.3987412.3987412.4976112.6964811.0Latn Dutch 102474.31024616.51024616.61024618.21024617.9Latn Bamun 102484.38744-0.68744-0.587440.987440.6Latn Edo 102624.41026016.71026016.81026018.41026018.1Latn Bicolano, Central 102634.41026316.71026316.81026318.41026318.1Latn Tsonga (Mozambique) 102744.51004714.21004714.31004715.91004715.6Latn Quechua, Ayacucho 102954.81027316.81027316.91027318.61027318.2Latn Mina 103004.890853.390853.490404.390404.1Latn Romanian (2006) 103034.8968310.1968310.2968311.7968311.5Latn Luxembourgeois 103064.9999813.7999813.8999815.4999815.1Latn Romanian (1993) 103114.9969110.2969110.3969111.8969111.5Latn Romanian (1953) 103175.0969110.2969110.3969111.8969111.5Latn Mozarabic 103175.01018415.81018415.91018417.51018417.2Latn Sardinian, Logudorese 103235.01019515.91019516.01019517.71019517.3Latn Haitian Creole French (Popular) 103395.21010314.91010315.01010316.61010316.3Latn Hiligaynon 104055.91040518.31040518.41040520.11040519.8Latn Shor 104146.05724-34.95724-34.95724-33.95724-34.1Cyrl Sango 104286.18644-1.78644-1.68644-0.28644-0.5Latn Ilocano 104296.11042918.61042918.71042920.41042920.0Latn Occitan (Francoprovençal, Fribourg) 104396.292264.992265.092266.592266.2Latn Niue 104446.31044318.81044318.81044320.51044320.2Latn Comorian, Maore 104586.41034017.61034017.71034019.31034019.0Latn Chin, Falam 104676.51046719.01046719.11046720.81046720.5Latn Ibibio 104686.51046719.01046719.11046720.81046720.5Latn Lingala (tones) 104766.689902.289902.387601.187600.8Latn Hebrew 105026.95822-33.85822-33.85822-32.85822-33.0Hebr Saxon, Low 105397.21031817.31031817.41031819.11031818.8Latn Venda 106208.11010614.91010615.01010616.61010616.3Latn Mòoré 106218.194277.294277.394278.894278.5Latn Quichua, Chimborazo Highland 106518.41054920.01054920.01043620.41032318.8Latn Saami, North 106548.4994413.1994413.2994414.8994414.5Latn Occitan (Francoprovençal, Valais) 106628.594137.094137.194138.694138.3Latn Walloon 107149.0978511.3978511.3978512.9978512.6Latn Hungarian 107189.1978311.2978311.3978312.9978312.6Latn Nzema 107409.394397.394397.494398.994398.6Latn Tsonga (Zimbabwe) 107589.51054619.91054620.01054621.71054621.4Latn Quechua, North Junín 107659.51075622.31075622.41075624.11075623.8Latn Hmong, Northern Qiandong 108019.91080122.81080122.91080124.71080124.3Latn Khasi 1081010.01060520.61060520.71060522.41060522.1Latn K'iche', Central 1081710.11081723.01081723.11081724.81081724.5Latn Javanese (Latin) 1086310.51086323.51086323.61086325.41086325.0Latn Occitan (Francoprovençal, Vaud) 1088510.8975711.0975711.0975712.6975712.3Latn Shuar 1093011.21053319.81053319.91053321.61053321.2Latn Baoulé 1094611.41020416.01020416.11020417.81020417.4Latn Totonac, Papantla 1095511.51095524.61095524.71095526.41095526.1Latn Evenki 1096211.55948-32.45948-32.35776-33.35776-33.5Cyrl Kabuverdianu 1097111.61033417.51033417.61033419.31032518.8Latn Jula 1103812.38719-0.98719-0.887190.687190.4Latn Éwé 1110713.0996713.3996713.4995014.8995014.5Latn Asháninka 1116713.61116427.01116427.01116428.81116428.5Latn Hmong Njua 1117913.81117927.11117927.21117929.01117928.7Latn Mbundu (009) 1120014.01113326.61113326.71113328.51113328.1Latn Arabic, Standard 1121414.16183-29.76183-29.66166-28.86166-29.0Arab Samoan 1123114.31123127.71123127.81123129.61123129.3Latn Quechua, Margos-Yarowilca-Lauricocha 1126014.61110826.31110826.41110828.21110827.9Latn Achuar-Shiwiar 1129915.01129628.51129628.51129630.41129630.0Latn Tojolabal 1146516.71017315.71017315.81017317.41017317.1Latn Bushi 1148716.91098024.91098024.91098026.71098026.4Latn Osetin 1152817.36370-27.66370-27.56370-26.56370-26.7Cyrl Tzotzil (Chamula) 1155817.61070321.71070321.81070323.51070323.2Latn Rarotongan 1156217.71152731.11152731.21152733.01152732.7Latn Maya, Yucatán 1173219.41067521.41067521.51067523.21067522.9Latn Quechua, Northern Conchucos Ancash 1178619.91178234.01178234.11178236.01178235.6Latn Yanomamö 1191321.21047019.11047019.11047020.81047020.5Latn Aguaruna 1191821.31185434.81185434.91185436.81185436.4Latn Hausa (Niger) 1207822.91183134.51183134.61183136.51183136.2Latn Hausa (Nigeria) 1207822.91186334.91186335.01186336.91186336.5Latn Vietnamese 1218224.088770.988771.088772.488772.2Latn Chin, Haka 1223124.51223139.11223139.21223141.21223140.8Latn Quechua, Ambo-Pasco 1232725.41218138.51218138.61218140.61218140.2Latn Cashibo-Cacataibo 1234925.71151430.91151431.01151432.91151432.5Latn Tem 1241826.488781.088781.08246-4.88246-5.1Latn Ojibwa, Northwestern 1241926.44775-45.74775-45.74775-44.94775-45.0Cans Pidgin, Nigerian 1242426.41242441.31242441.41242443.41242443.0Latn Tahitian 1244926.71224439.21224439.31224441.31224440.9Latn Amahuaca 1253027.51253042.51253042.61253044.61253044.2Latn Lobi 1264528.71043518.71043518.71043520.41043520.1Latn Cree, Swampy 1270529.34849-44.94849-44.84849-44.04849-44.2Cans Navajo 1283530.6998113.5998113.6980313.1980312.8Latn Quechua, South Bolivian 1292431.51290246.71290246.81290248.91290248.5Latn Kaqchikel, Central 1294331.71261643.51261643.61261645.61261645.2Latn Maori 1299432.21299347.71299347.81299349.91299349.6Latn Seraiki 1302032.57303-17.07303-16.97302-15.77302-16.0Arab Ticuna 1313733.71050819.51050819.6988614.1988613.8Latn Arabela 1325634.91325550.71325550.81325553.01325552.6Latn Swati 1337236.11332051.51332051.61332053.71332053.3Latn Komi-Permyak 1349937.47378-16.17378-16.07378-14.97378-15.1Cyrl Farsi, Western 1359738.47537-14.37537-14.27460-13.97460-14.1Arab Yukaghir, Northern 1361838.67366-16.27366-16.27366-15.07366-15.2Cyrl Dari 1366939.17607-13.57607-13.47561-12.77561-13.0Arab Pintupi-Luritja 1373639.81373656.21373656.31373658.51373658.1Latn Urdu 1385941.07768-11.77768-11.67733-10.87733-11.0Arab Panjabi, Western 1399642.47904-10.17904-10.17893-8.97893-9.2Arab Tongan 1401742.61245341.61245341.71245343.71245343.3Latn Yoruba 1405943.11023816.41023816.592767.192766.8Latn Inuktitut, Greenlandic 1406743.11406760.01406760.11406762.31406761.9Latn Serbian (Cyrillic) 1409043.47740-12.07740-11.97740-10.77740-10.9Cyrl Urdu (2) 1410843.67904-10.17904-10.17868-9.27868-9.4Arab Nanai 1414844.07666-12.87666-12.87636-11.97636-12.1Cyrl Caquinte 1425045.01424662.01424662.11424664.41424664.0Latn Tigrigna 1427045.25502-37.45502-37.45502-36.55502-36.7Ethi Bosnian (Cyrillic) 1440446.67906-10.17906-10.07906-8.87906-9.0Cyrl Malay (Arabic) 1441046.67899-10.27899-10.17899-8.87899-9.1Arab Konjo 1462048.81462066.21462066.41462068.71462068.3Latn Pashto, Northern 1472749.98276-5.98276-5.88274-4.58274-4.8Arab Bora 1493452.01181934.41181934.51165934.61165934.2Latn Quechua, Huamalíes-Dos de Mayo Huánuco 1497352.41477268.01477268.11477270.51477270.0Latn Toba 1525055.21467266.81467267.01467269.31467268.9Latn Nahuatl, Central 1546057.31545775.81545775.91545778.41545777.9Latn Vai 1555558.36931-21.26931-21.16931-20.06931-20.2Vaii Tatar 1560158.88493-3.48493-3.48493-2.08493-2.2Cyrl Tajiki 1560658.88594-2.38594-2.28594-0.88594-1.1Cyrl Macedonian 1584361.28704-1.08704-1.087040.587040.2Cyrl Ukrainian 1610963.98785-0.18785-0.087851.487851.1Cyrl Azerbaijani, North (Cyrillic) 1611764.08733-0.78733-0.687330.887330.5Cyrl Orok 1611864.08696-1.18696-1.08251-4.88251-5.0Cyrl Amharic 1614464.35382-38.85382-38.85382-37.95382-38.1Ethi Kazakh 1627365.68791-0.087910.087911.587911.2Cyrl Mongolian, Halh (Cyrillic) 1629565.888370.588370.688372.088371.7Cyrl Tamazight, Standard Morocan 1630165.96371-27.66371-27.56371-26.56371-26.7Tfng Turkmen (Cyrillic) 1643867.388260.488260.488261.988261.6Cyrl Altai, Southern 1650868.088650.888650.988652.388652.0Cyrl Shipibo-Conibo 1667469.71639186.41639186.51639189.21639188.7Latn Bulgarian 1684471.492284.992285.092286.592286.2Cyrl Armenian 1685371.590382.890382.890384.390384.0Armn Chachi 1704273.41691292.31691292.41691195.21691094.6Latn Belarusan 1711774.293075.893075.993077.493077.1Cyrl Tai Dam 1730176.17181-18.37181-18.36423-25.96423-26.1Tavt Abkhaz 1731876.292805.592805.692807.192806.8Cyrl Yaneshaʼ 1733676.41585180.21585180.41523875.91523875.4Latn Uzbek, Northern (Cyrillic) 1739477.093646.593646.693648.193647.8Cyrl Adyghe 1743277.494837.894837.994839.494839.2Cyrl Kirghiz 1749078.093906.893906.993908.493908.1Cyrl Nganasan 1752778.493366.293366.293367.793367.5Cyrl Yiddish, Eastern 1758979.095939.195939.28621-0.58621-0.8Hebr Yakut 1761579.394707.794707.894709.394709.0Cyrl Khakas 1761679.395548.695548.7955410.3955410.0Cyrl Tuva 1771780.395728.895728.9957210.5957210.2Cyrl Russian 1775080.696059.296059.3960510.8960510.6Cyrl Matsés 1778881.01733697.11733697.317336100.11733699.5Latn Kabardian 1787981.996339.596339.6963311.2963310.9Cyrl Inuktitut, Eastern Canadian 1791082.36456-26.66456-26.56456-25.56456-25.7Cans Magahi 1792082.46950-21.06950-20.95090-41.36052-30.3Deva Uyghur (Arabic) 1832386.5982611.7982611.8982613.4982613.1Arab Greek (monotonic) 1832486.51001713.91001714.01001715.61001715.3Grek Cherokee (cased) 1875990.97245-17.67245-17.67245-16.47245-16.6Cher Cherokee (uppercase) 1875990.97245-17.67245-17.67245-16.47245-16.6Cher Bhojpuri 1893092.67294-17.17294-17.05217-39.86274-27.8Deva Greek (polytonic) 1955599.01003914.21003914.21003915.91003915.6Grek Maithili 20047104.07500-14.77500-14.75382-37.96435-25.9Deva Nepali 20816111.87720-12.27720-12.25338-38.46615-23.9Deva Bengali 21349117.27871-10.57871-10.45318-38.67061-18.7Beng Thai (2) 21694120.87390-16.07390-15.95896-32.05950-31.5Thai Thai 21873122.67479-15.07479-14.95992-30.86043-30.4Thai Gujarati 21890122.88184-6.98184-6.95586-35.56978-19.7Gujr Ashéninka, Pichis 22298126.922163152.022163152.222163155.822163155.1Latn Panjabi, Eastern 22584129.88788-0.187880.06181-28.77470-14.0Guru Sanskrit 22717131.28171-7.18171-7.05186-40.26544-24.7Deva Sinhala 22785131.98519-3.18519-3.16061-30.16853-21.1Sinh Khün 23411138.28047-8.58047-8.44655-46.35140-40.8Lana Kannada 23429138.48463-3.88463-3.75580-35.66989-19.6Knda Hindi 23466138.889621.989622.06187-28.67632-12.2Deva Lao 24128145.58340-5.28340-5.16365-26.56447-25.8Laoo Telugu 24993154.391454.091454.16027-30.47156-17.6Telu Khmer, Central 25053154.98619-2.08619-1.95511-36.46791-21.8Khmr Malayalam 25115155.689071.389071.45286-39.06762-22.2Mlym Marathi 25231156.893456.393456.36241-28.07939-8.6Deva Javanese (Javanese) 26155166.28741-0.68741-0.55207-39.96786-21.9Java Georgian 26534170.0974210.8974210.9974212.4974212.1Geor Chakma 27301177.81423161.87696-12.44883-43.65313-38.8Cakm Pular (Adlam) 28460189.61495170.08233-6.37435-14.27435-14.4Adlm Maldivian 28469189.71503070.91503071.08449-2.58449-2.8Thaa Dzongkha 28504190.196509.796509.87620-12.17620-12.3Tibt Mon 28674191.81001613.91001614.05751-33.66233-28.3Mymr Sanskrit (Grantha) 29914204.41541875.38241-6.25244-39.58173-5.9Gran Tamil 30208207.41082423.11082423.26894-20.492736.7Taml Tamil (Sri Lanka) 30213207.41082523.11082523.26893-20.592756.8Taml Tibetan, Central 30411209.51024316.51024316.67958-8.27958-8.4Tibt Burmese 35846264.81257243.01257243.17695-11.28630-0.7Mymr Shan 36130267.71255042.71255042.88327-3.98604-1.0MymrMin4170-57.62202-75.02202-74.92202-74.64007-53.9Median98278794878886658688Mean1131515.188330.48787-0.08567-1.187000.1Max (ignoring outlier)35846264.81733697.11733697.317336100.11733699.5Max36130267.722163152.022163152.222163155.822163155.1First published: 2019-09-08, grammar and typos fixed, Dutch removed from the list of ASCII languages and tweaked its phrasing, update about Ashéninka Perené mislabeling, avoided suggesting that Java had.length as opposed to.length(), and added corrections related to the value space of Python 3 strings: 2019-09-09.

Get the Android app

Or read this on Hacker News