Currency Symbols: Unicode, HTML, LaTeX

Every world currency symbol you'll need to render — 95 distinct glyphs across 154 ISO 4217 currencies, each with its Unicode code point, HTML entity, LaTeX command and a click-to-copy button. Plus the ambiguity table that the other references skip: which currencies share $, which share £, which share ¥, and how to disambiguate them in your UI.

Why currency symbols are harder than they look

At first glance a currency symbol is a character you stick before or after a number. In practice it's three different things at once: a glyph (the visual mark), a Unicode code point (the underlying character your bytes represent), and a culturally-loaded display convention (placement, spacing, decimal punctuation). Most production currency-formatting bugs come from confusing the three.

Unicode added a dedicated Currency Symbols block (U+20A0U+20CF) for marks that don't have a pre-existing ASCII representation. The recent additions matter for international apps: ₹ (Indian Rupee, U+20B9, added 2010), ₺ (Turkish Lira, U+20BA, added 2012), ₽ (Russian Ruble, U+20BD, added 2014), ₾ (Georgian Lari, U+20BE, added 2014), ₿ (Bitcoin, U+20BF, added 2017 — though Bitcoin still has no ISO 4217 code). Older systems with fonts predating these additions render them as a hollow box.

The classic ASCII-era symbols ($, ¢, £, ¥) live in Basic Latin and Latin-1 Supplement, are universally available, and are the source of every shared-glyph headache in the table below — 24 different currencies use the dollar sign $, 9 use the pound sign £, 5 use the rupee sign ₨ and several share the Arabic riyal ﷼. The cure isn't a different glyph — there isn't one — it's the ISO 4217 alpha code displayed alongside.

Below: the full searchable grid, then the ambiguity explainer, then a section on actually rendering currency in code (the only correct answer is locale-aware formatting, not hand-rolled symbol concatenation), then a quick reference of HTML entities for the symbols developers most commonly reach for.

Currency symbol grid

Click any symbol to copy it to your clipboard. Click a column header to sort. Filter by code, name or symbol.

154 of 154
Code Currency Symbol Unicode HTML entity LaTeX Notes
AED UAE Dirham U+062F+002E+0625 د.إ {\arabictext د.إ} UAE Dirham. 'AED' or 'Dh' also appear in EN contexts.
AFN Afghan Afghani U+060B ؋ {\arabictext ؋} Afghan Afghani sign.
ALL Albanian Lek ALL ALL No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
AMD Armenian Dram U+058F ֏ {\armeniantext ֏} Armenian Dram sign.
ANG Netherlands Antillean Guilder ANG ANG No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
AOA Angolan Kwanza AOA AOA No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
ARS Argentine Peso U+0024 $ \$ Argentine Peso uses the plain dollar sign. Often prefixed with AR$ for disambiguation.
AUD Australian Dollar U+0041+0024 A$ A\$ Australian Dollar. Plain $ is used locally; A$ is international convention.
AWG Aruban Florin AWG AWG No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
AZN Azerbaijani Manat U+20BC ₼ \textazerimanat Azerbaijani Manat sign, adopted 2006.
BAM Bosnia-Herzegovina Convertible Mark BAM BAM No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
BBD Barbadian Dollar U+0042+0064+0073+0024 Bds$ Bds\$ Barbadian Dollar.
BDT Bangladeshi Taka U+09F3 ৳ {\bengalitext ৳} Bangladeshi Taka sign.
BGN Bulgarian Lev U+043B+0432 лв {\cyrillictext лв} Bulgarian Lev — Cyrillic letters 'lv'.
BHD Bahraini Dinar U+0628+002E+062F ب.د {\arabictext ب.د} Bahraini Dinar.
BIF Burundian Franc BIF BIF No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
BMD Bermudan Dollar U+0042+0044+0024 BD$ BD\$ Bermudan Dollar.
BND Brunei Dollar BND BND No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
BOB Bolivian Boliviano U+0042+0073 Bs Bs Bolivian Boliviano. 'Bs.' with a period is also common.
BRL Brazilian Real U+0052+0024 R$ R\$ Brazilian Real.
BSD Bahamian Dollar U+0042+0024 B$ B\$ Bahamian Dollar.
BTN Bhutanese Ngultrum BTN BTN No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
BWP Botswanan Pula BWP BWP No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
BYN Belarusian Ruble BYN BYN No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
BZD Belize Dollar U+0042+005A+0024 BZ$ BZ\$ Belize Dollar.
CAD Canadian Dollar U+0043+0024 C$ C\$ Canadian Dollar. Plain $ inside Canada, C$ or CA$ internationally.
CDF Congolese Franc CDF CDF No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
CHF Swiss Franc U+0043+0048+0046 CHF CHF Swiss Franc has no special symbol — the three-letter code is the display convention. 'Fr.' or 'SFr.' also appear.
CLP Chilean Peso U+0024 $ \$ Chilean Peso uses the plain dollar sign. Internationally CLP$ is common.
CNY Chinese Yuan Renminbi U+00A5 ¥ \textyen Chinese Yuan uses the same ¥ glyph as JPY. Chinese-language contexts may also use 元 (U+5143) or 圆.
COP Colombian Peso U+0024 $ \$ Colombian Peso uses $. Internationally COL$ or COP$.
CRC Costa Rican Colón U+20A1 ₡ \textcolonmonetary Costa Rican Colón sign.
CUP Cuban Peso U+0024+004D+004E $MN \$MN Cuban Peso (moneda nacional).
CVE Cape Verdean Escudo CVE CVE No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
CZK Czech Koruna U+004B+010D Kč K\v{c} Czech Koruna. 'č' is U+010D (Latin small letter c with caron).
DJF Djiboutian Franc DJF DJF No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
DKK Danish Krone U+006B+0072 kr kr Danish Krone. Same glyph as SEK / NOK / ISK.
DOP Dominican Peso U+0052+0044+0024 RD$ RD\$ Dominican Peso.
DZD Algerian Dinar U+0044+0041 DA DA Algerian Dinar. Arabic form is د.ج.
EGP Egyptian Pound U+00A3 £ \pounds Egyptian Pound — same £ glyph as GBP. Disambiguate with E£ or LE in international contexts.
ERN Eritrean Nakfa ERN ERN No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
ETB Ethiopian Birr U+0042+0072 Br Br Ethiopian Birr.
EUR Euro U+20AC € \euro Euro sign. Placement varies by locale — pre-symbol in EN-IE, post-symbol in DE, FR, ES.
FJD Fijian Dollar U+0046+004A+0024 FJ$ FJ\$ Fijian Dollar.
FKP Falkland Islands Pound FKP FKP No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
GBP British Pound Sterling U+00A3 £ \pounds Pound sign. Also used for Egyptian, Lebanese, Syrian, Sudanese pounds — disambiguate with E£, L£, S£.
GEL Georgian Lari U+20BE ₾ \textgeorgianlari Georgian Lari sign, adopted 2014.
GHS Ghanaian Cedi U+20B5 ₵ \textcedi Ghanaian Cedi sign. Needs Unicode 5.2+ font.
GIP Gibraltar Pound GIP GIP No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
GMD Gambian Dalasi GMD GMD No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
GNF Guinean Franc GNF GNF No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
GTQ Guatemalan Quetzal U+0051 Q Q Guatemalan Quetzal.
GYD Guyanese Dollar GYD GYD No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
HKD Hong Kong Dollar U+0048+004B+0024 HK$ HK\$ Hong Kong Dollar. Plain $ is used locally.
HNL Honduran Lempira U+004C L L Honduran Lempira.
HTG Haitian Gourde HTG HTG No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
HUF Hungarian Forint U+0046+0074 Ft Ft Hungarian Forint.
IDR Indonesian Rupiah U+0052+0070 Rp Rp Indonesian Rupiah.
ILS Israeli New Shekel U+20AA ₪ \textnis New Shekel sign. Displays as the Hebrew letter shin with two ascenders in good fonts.
INR Indian Rupee U+20B9 ₹ \rupee Indian Rupee sign, adopted by India in 2010. Requires Unicode 6.0+ font — older systems fall back to ₨ or 'Rs'.
IQD Iraqi Dinar IQD IQD No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
IRR Iranian Rial U+FDFC ﷼ {\arabictext ﷼} Iranian Rial. ﷼ is the generic 'rial/riyal' ligature (U+FDFC).
ISK Icelandic Króna U+006B+0072 kr kr Icelandic Króna.
JMD Jamaican Dollar U+004A+0024 J$ J\$ Jamaican Dollar.
JOD Jordanian Dinar U+062F+002E+0623 د.أ {\arabictext د.أ} Jordanian Dinar. 'JD' also common in EN.
JPY Japanese Yen U+00A5 ¥ \textyen Yen sign. Identical glyph to the Chinese Yuan ¥ — disambiguate with JPY vs CNY in the UI.
KES Kenyan Shilling U+004B+0053+0068 KSh KSh Kenyan Shilling.
KGS Kyrgyzstani Som KGS KGS No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
KHR Cambodian Riel U+17DB ៛ {\khmertext ៛} Cambodian Riel sign.
KMF Comorian Franc KMF KMF No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
KPW North Korean Won KPW KPW No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
KRW South Korean Won U+20A9 ₩ \textwon Won sign (South and North Korea). Some fonts render the double-bar variant; if it looks like a plain W, try Noto Sans CJK.
KWD Kuwaiti Dinar U+062F+002E+0643 د.ك {\arabictext د.ك} Kuwaiti Dinar. Highest-valued currency in the world as of 2026.
KYD Cayman Islands Dollar KYD KYD No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
KZT Kazakhstani Tenge U+20B8 ₸ \texttenge Kazakhstani Tenge sign.
LAK Laotian Kip U+20AD ₭ \textkip Laotian Kip sign.
LBP Lebanese Pound U+0644+002E+0644 ل.ل {\arabictext ل.ل} Lebanese Pound. £L and L£ also appear.
LKR Sri Lankan Rupee U+20A8 ₨ \textrupee Sri Lankan Rupee — same ₨ glyph as PKR/NPR.
LRD Liberian Dollar LRD LRD No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
LSL Lesotho Loti LSL LSL No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
LYD Libyan Dinar U+004C+0044 LD LD Libyan Dinar. Arabic form is ل.د.
MAD Moroccan Dirham U+0044+0048 DH DH Moroccan Dirham. Arabic form is د.م.
MDL Moldovan Leu MDL MDL No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
MGA Malagasy Ariary MGA MGA No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
MKD Macedonian Denar MKD MKD No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
MMK Myanmar Kyat U+004B K K Myanmar Kyat. 'Ks' also used.
MNT Mongolian Tögrög U+20AE ₮ \texttugrik Mongolian Tögrög sign.
MOP Macanese Pataca MOP MOP No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
MRU Mauritanian Ouguiya MRU MRU No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
MUR Mauritian Rupee U+20A8 ₨ \textrupee Mauritian Rupee.
MVR Maldivian Rufiyaa MVR MVR No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
MWK Malawian Kwacha MWK MWK No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
MXN Mexican Peso U+0024 $ \$ Mexican Peso uses the plain dollar sign locally. Internationally use MX$ or Mex$.
MYR Malaysian Ringgit U+0052+004D RM RM Malaysian Ringgit.
MZN Mozambican Metical MZN MZN No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
NAD Namibian Dollar NAD NAD No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
NGN Nigerian Naira U+20A6 ₦ \textnaira Nigerian Naira sign.
NIO Nicaraguan Córdoba U+0043+0024 C$ C\$ Nicaraguan Córdoba. Same glyph as CAD — disambiguate by ISO code.
NOK Norwegian Krone U+006B+0072 kr kr Norwegian Krone. Same glyph as SEK / DKK / ISK.
NPR Nepalese Rupee U+20A8 ₨ \textrupee Nepalese Rupee — uses the generic Rupee sign ₨.
NZD New Zealand Dollar U+004E+005A+0024 NZ$ NZ\$ New Zealand Dollar.
OMR Omani Rial U+0631+002E+0639 ر.ع {\arabictext ر.ع} Omani Rial.
PAB Panamanian Balboa PAB PAB No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
PEN Peruvian Sol U+0053+002F S/ S/ Peruvian Sol — 'S/' with a forward slash is the standard display.
PGK Papua New Guinean Kina PGK PGK No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
PHP Philippine Peso U+20B1 ₱ \textpeso Philippine Peso sign. Shared with the historical Mexican peso glyph — context disambiguates.
PKR Pakistani Rupee U+20A8 ₨ \textrupee Pakistani Rupee — same glyph as the generic Rupee sign ₨.
PLN Polish Złoty U+007A+0142 zł z\l Polish Złoty. The 'ł' is U+0142 (Latin small letter l with stroke).
PYG Paraguayan Guaraní U+20B2 ₲ \textguarani Paraguayan Guaraní sign.
QAR Qatari Riyal U+0631+002E+0642 ر.ق {\arabictext ر.ق} Qatari Riyal.
RON Romanian Leu U+006C+0065+0069 lei lei Romanian Leu.
RSD Serbian Dinar RSD RSD No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
RUB Russian Ruble U+20BD ₽ \textrubble Russian Ruble sign, adopted 2014. Needs recent fonts; older renderers fall back to 'руб.' or the Cyrillic letter Р.
RWF Rwandan Franc RWF RWF No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
SAR Saudi Riyal U+0631+002E+0633 ر.س {\arabictext ر.س} Saudi Riyal. The generic riyal glyph ﷼ (U+FDFC) is also common.
SBD Solomon Islands Dollar SBD SBD No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
SCR Seychellois Rupee U+20A8 ₨ \textrupee Seychellois Rupee.
SDG Sudanese Pound SDG SDG No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
SEK Swedish Krona U+006B+0072 kr kr Swedish Krona. 'kr' is shared with Norwegian, Danish, Icelandic krones — always pair with ISO code.
SGD Singapore Dollar U+0053+0024 S$ S\$ Singapore Dollar.
SHP Saint Helena Pound SHP SHP No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
SLE Sierra Leonean Leone SLE SLE No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
SOS Somali Shilling SOS SOS No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
SRD Surinamese Dollar SRD SRD No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
SSP South Sudanese Pound SSP SSP No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
STN São Tomé and Príncipe Dobra STN STN No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
SYP Syrian Pound SYP SYP No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
SZL Swazi Lilangeni SZL SZL No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
THB Thai Baht U+0E3F ฿ \textbaht Thai Baht sign.
TJS Tajikistani Somoni TJS TJS No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
TMT Turkmenistani Manat TMT TMT No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
TND Tunisian Dinar U+0044+0054 DT DT Tunisian Dinar. Arabic form is د.ت.
TOP Tongan Paʻanga TOP TOP No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
TRY Turkish Lira U+20BA ₺ \textliraturk Turkish Lira sign, adopted 2012. Before adoption the Latin 'TL' was used.
TTD Trinidad and Tobago Dollar U+0054+0054+0024 TT$ TT\$ Trinidad and Tobago Dollar.
TWD New Taiwan Dollar U+004E+0054+0024 NT$ NT\$ New Taiwan Dollar. The Taiwanese $ or 圓 is also seen locally.
TZS Tanzanian Shilling U+0054+0053+0068 TSh TSh Tanzanian Shilling.
UAH Ukrainian Hryvnia U+20B4 ₴ \texthryvnia Ukrainian Hryvnia sign.
UGX Ugandan Shilling U+0055+0053+0068 USh USh Ugandan Shilling.
USD United States Dollar U+0024 $ \$ Dollar sign. Shared with 20+ currencies — always pair with ISO 4217 code in multi-currency UIs.
UYU Uruguayan Peso U+0024+0055 $U \$U Uruguayan Peso.
UZS Uzbekistani Sum UZS UZS No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
VES Venezuelan Bolívar Soberano U+0042+0073+002E+0053 Bs.S Bs.S Venezuelan Bolívar Soberano. The plain 'Bs.' also appears in older systems.
VND Vietnamese Đồng U+20AB ₫ \textdong Vietnamese Đồng sign.
VUV Vanuatu Vatu VUV VUV No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
WST Samoan Tala WST WST No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
XAF Central African CFA Franc U+0046+0043+0046+0041 FCFA FCFA Central African CFA Franc — no Unicode code point; 'FCFA' is the written convention.
XCD East Caribbean Dollar U+0045+0043+0024 EC$ EC\$ East Caribbean Dollar.
XOF West African CFA Franc U+0043+0046+0041 CFA CFA West African CFA Franc — no Unicode code point; 'CFA' is the written convention.
XPF CFP Franc U+20A3 ₣ \textfranc CFP Franc (French Pacific) — uses the generic French franc sign ₣.
YER Yemeni Rial YER YER No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
ZAR South African Rand U+0052 R R South African Rand — plain Latin R.
ZMW Zambian Kwacha ZMW ZMW No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.
ZWL Zimbabwean Dollar ZWL ZWL No dedicated Unicode symbol — use the ISO 4217 alpha code in UI.

Currencies without a dedicated Unicode glyph use the ISO 4217 three-letter code as their display form — that's the actual ISO recommendation, not a fallback. Examples: CHF for the Swiss Franc, RWF for Rwandan Franc, FCFA / CFA for the two CFA franc zones. Don't invent a glyph the standard does not assign.

Ambiguous symbols — which currencies share a glyph

This is the section the other reference pages skip. Five glyphs are shared across multiple national currencies, and treating the symbol as a unique identifier is one of the most common bugs in multi-currency UIs. The fix is not a different glyph — it's always pair the symbol with the ISO 4217 alpha code in any context where the user might encounter more than one currency.

$
used by 24 currencies
USD CAD AUD HKD SGD NZD MXN ARS CLP COP UYU BRL NIO JMD TTD DOP CUP BBD BMD BSD BZD FJD XCD TWD
£
used by 9 currencies
GBP EGP LBP SHP GIP FKP SYP SDG SSP
used by 5 currencies
PKR LKR NPR MUR SCR
used by 5 currencies
SAR IRR YER OMR QAR
kr
used by 4 currencies
SEK NOK DKK ISK
¥
used by 2 currencies
JPY CNY

How to disambiguate in your UI

Three patterns work, in roughly increasing order of correctness:

  1. Always show the ISO 4217 code alongside the symbol. "US$ 100", "MX$ 100", "A$ 100". Easy retrofit, works with any rendering pipeline. Used by every airline, hotel and SaaS pricing page that takes payments in more than one currency.
  2. Use locale-aware formatters. JavaScript's Intl.NumberFormat with the currency code picks the right symbol, decimal separator and placement for the user's locale. This is the right answer for almost every web app.
  3. Use the canonical international form. ISO 4217 itself recommends "USD 100" with the alpha code as a prefix and a non-breaking space — this is the form you'll see on bank statements, audit reports and SWIFT messages. Less friendly for consumer UI but unambiguous in legal and accounting contexts.

What does not work: assuming the user's browser locale matches their currency preference (an American buying in EUR should still see EUR-formatted prices), or detecting currency from IP geolocation (VPN, travel, expat). The currency is part of the data, not the user.

How to display currency in code

The right answer is always: pass an ISO 4217 code to a locale-aware formatter and let the platform pick the glyph, decimal precision, and placement. Hand-coding "$" or "€" hard-wires assumptions that break in production. Three working examples follow — JavaScript, Python and LaTeX.

JavaScript — Intl.NumberFormat
// One formatter per (locale, currency) pair.
const eur_de = new Intl.NumberFormat('de-DE', {
  style: 'currency', currency: 'EUR'
});
eur_de.format(1234.5);     // "1.234,50 €"

const jpy_jp = new Intl.NumberFormat('ja-JP', {
  style: 'currency', currency: 'JPY'
});
jpy_jp.format(1234.5);     // "¥1,235" (no decimals — JPY)

const kwd_ar = new Intl.NumberFormat('ar-KW', {
  style: 'currency', currency: 'KWD'
});
kwd_ar.format(1234.5678);  // "د.ك.‏ 1,234.568" (3 decimals)
Python — Babel
from babel.numbers import format_currency

format_currency(1234.5, 'EUR', locale='de_DE')
# '1.234,50\xa0€'

format_currency(1234.5, 'JPY', locale='ja_JP')
# '¥1,235'

format_currency(1234.5678, 'KWD', locale='ar_KW')
# 'د.ك.‏\xa01,234.568'

# Without Babel: locale module works but is single-locale-per-process
# and doesn't know per-currency decimal precision. Babel is worth
# the dependency.
LaTeX — eurosym, textcomp
% In your preamble:
\usepackage[utf8]{inputenc}
\usepackage{eurosym}    % \euro
\usepackage{textcomp}   % \textyen, \textcent, \textcurrency
\usepackage{pifont}     % various symbol commands

% In the document body:
\$100         % $100
\pounds 100   % £100
\euro 100     % €100
\textyen 100  % ¥100
\rupee 100    % ₹100  (requires \usepackage{tipx})

Two anti-patterns that show up in code review again and again. String concatenation: "$" + amount.toFixed(2) hard-wires USD, two-decimal, prefix-placed, US-thousand-separators — wrong for every other locale. Locale detection from IP: a German user paying in EUR should see EUR formatted by their browser locale, regardless of which country their datacentre exit node lives in. Currency is a property of the transaction; locale is a property of the user. Don't conflate them.

HTML entities quick reference

In modern UTF-8 documents you can paste the literal currency character into your HTML — no entity required. Entities still matter for legacy ASCII-only contexts (some email clients, ancient CMS systems, hand-edited XML). The five currency entities people actually search for:

Symbol Named entity Numeric entity Hex entity Currencies
€€€EUR
££££GBP, EGP, LBP, SHP, GIP, FKP, SDG, SSP
¥¥¥¥JPY, CNY
¢¢¢¢USD subunit (and others)
$$$$USD + 23 others — see ambiguity table
— (no named entity)₹₹INR
— (no named entity)₽₽RUB
— (no named entity)₩₩KRW, KPW
— (no named entity)₺₺TRY
฿— (no named entity)฿฿THB
— (no named entity)₪₪ILS
— (no named entity)₨₨PKR, LKR, NPR, MUR, SCR

Only €, £, ¥, ¢ and $ have named HTML entities — the rest require numeric or hex form. In any UTF-8 document you can paste the literal character and skip entities entirely; modern browsers, terminals and editors handle it correctly. Entities are an artefact of the ASCII era that's still occasionally useful for systems that aren't fully Unicode-clean.

Browser and font compatibility

Not every currency symbol renders in every font. The pattern is straightforward: a font shipped before a symbol's Unicode addition won't have a glyph for it, and the user sees a "tofu" box (☐) or a missing-glyph rectangle. The recently-added symbols most likely to need a fallback font:

  • Indian Rupee (U+20B9, added 2010) — needs a font from at least 2010. Most modern OS fonts (Segoe UI, San Francisco, Roboto, Noto) cover it; Helvetica, Arial pre-2014, and Times New Roman often don't.
  • Turkish Lira (U+20BA, added 2012) — same story; widespread in 2026 but legacy systems show tofu.
  • Russian Ruble (U+20BD, added 2014).
  • Georgian Lari (U+20BE, added 2014).
  • Ghanaian Cedi (U+20B5, added 2009).
  • Bitcoin (U+20BF, added 2017) — not an ISO 4217 code but worth knowing.

The fix is a CSS font-family stack with a Unicode-coverage fallback. Noto Sans, DejaVu Sans and Symbola all cover the entire Currency Symbols block. Keep the brand font as the primary and the fallback for missing glyphs:

body {
  font-family: "YourBrandFont", "Noto Sans", -apple-system,
               BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

For Arabic-script currency marks (د.إ, ر.س, ﷼, ؋) you also want an Arabic-coverage font in the stack — Noto Sans Arabic or Amiri. Right-to-left layout is handled separately via dir="rtl" or the direction CSS property; the symbol itself still flows in RTL when the surrounding text is RTL.

Frequently asked questions

What is the euro symbol in HTML? +
The euro symbol € is HTML entity € or numeric reference € (Unicode code point U+20AC). In modern UTF-8 documents you can paste the literal € character directly — entities are only needed in legacy ASCII-only contexts.
How do I type the rupee symbol ₹ on a keyboard? +
On Windows hold Alt and type 8377 on the numeric keypad. On macOS use the Character Viewer (Ctrl+Cmd+Space → search "rupee"). On Linux it is Ctrl+Shift+U then 20b9. In code use ₹ (HTML), "\u20B9" (JS / Python), or "₹" directly in any UTF-8 source file.
Is there a dollar symbol in Unicode? +
Yes — the dollar sign $ is U+0024, the same code point as ASCII. There is no separate "USD-specific" code point because the same glyph is used by 20+ currencies (CAD, AUD, HKD, MXN, ARS and many more). To disambiguate in UI you pair the glyph with the ISO 4217 code (e.g. "US$ 100" or "100 USD") or use locale-aware formatting.
Why do so many currencies use the $ sign? +
The dollar sign predates national currencies — it derives from the Spanish peso (the original "peso de ocho" or "piece of eight"). When countries in the Americas and the Pacific established their own currencies in the 19th and 20th centuries, many adopted the existing $ glyph because it was already on every typewriter and ledger. ISO 4217 alpha codes (USD, CAD, AUD…) exist exactly to disambiguate the resulting glyph collision.
How do I display a currency symbol in JavaScript? +
Use Intl.NumberFormat with the currency code — it picks the right symbol, the right decimal places (JPY has none, KWD has three) and the right placement for the user's locale. Example: new Intl.NumberFormat("de-DE", {style: "currency", currency: "EUR"}).format(1234.5) returns "1.234,50 €". Hand-coding the symbol breaks every locale that is not yours.
Does every currency have a Unicode symbol? +
No. Roughly 80 currencies have a dedicated Unicode code point or composed glyph; the remaining ~100 use the ISO 4217 alpha code as their display form. CHF for the Swiss Franc, RWF for Rwandan Franc and FCFA for the Central African CFA Franc are the practical convention. UniRateAPI returns codes verbatim — never invent a symbol the standard does not assign.
What is the Unicode block for currency symbols? +
Most modern symbols live in the Currency Symbols block U+20A0–U+20CF (₠ to ₿). Older ASCII-era symbols ($, ¢, £, ¥) sit in the Basic Latin and Latin-1 Supplement blocks. The cryptocurrency Bitcoin sign ₿ was added at U+20BF in Unicode 10.0 (2017), but ISO 4217 still does not assign it a currency code.
Why does my application render some currency symbols as boxes? +
The font you are using does not contain a glyph for that code point. Recently-added symbols (₾ Lari 2014, ₽ Ruble 2014, ₺ Lira 2012, ₿ Bitcoin 2017) require a font from at least the same year. Fix by adding a Unicode-coverage fallback like Noto Sans, DejaVu Sans, or Symbola in your CSS font-family.

Building a multi-currency UI?

The same currency metadata that powers this page is available via the API — live rates, ISO 4217 codes, supported currencies. Free key, 200 requests/day, no card required.

200 requests/day free · No card required · Pro plan from $9/mo