# Syntax: Escape hatch for unicode haters

**URL:** https://discourse.julialang.org/t/syntax-escape-hatch-for-unicode-haters/108363
**Category:** Internals & Design
**Tags:** syntax, unicode
**Created:** [January 4, 2024, 11:55pm UTC](https://discourse.julialang.org/t/syntax-escape-hatch-for-unicode-haters/108363 "2024-01-04T23:55:47Z")
**Posts on this page:** 1
**Showing post:** 22

<div class="post-metadata">

### Author: ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)
#### Post date: [January 5, 2024, 3:09pm UTC](https://discourse.julialang.org/t/syntax-escape-hatch-for-unicode-haters/108363/22 "2024-01-05T15:09:13Z")

</div>

> [@foobar\_lv2](#):
>
> Otherwise, the set of programming languages that permit full unicode variable or operator space is pretty limited, as far as I know.

Most modern languages support unicode identifiers these days:

- Python ([2. Lexical analysis — Python 3.3.7 documentation](https://docs.python.org/3.3/reference/lexical_analysis.html#identifiers))
- Rust ([Identifiers - The Rust Reference](https://doc.rust-lang.org/reference/identifiers.html))
- Swift ([Documentation](https://docs.swift.org/swift-book/documentation/the-swift-programming-language/lexicalstructure/#Identifiers))
- Go ([The Go Programming Language Specification - The Go Programming Language](https://go.dev/ref/spec#Identifiers))
- C# ([C# identifier names - rules and conventions - C# | Microsoft Learn](https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/identifier-names))
- Raku ([identifiers | Raku Documentation](https://docs.raku.org/syntax/identifiers))
- Java ([Charsets and Unicode Identifiers in Java - DZone](https://dzone.com/articles/charsets-unicode-identifiers-in-java))
- Ruby ([Coding Ninjas Studio](https://www.codingninjas.com/studio/library/identifiers-in-ruby))
- C++ ([Identifiers - cppreference.com](https://en.cppreference.com/w/cpp/language/identifiers))
- Heck, even C99 has rudimentary support… but as the oldest one here, it ironically allows `int \U03B1 = 2;` while leaving `α = 2;` implementation defined. ([Identifier - cppreference.com](https://en.cppreference.com/w/c/language/identifier)).
- Javascript also allows unicode as well as using unicode escapes in identifiers somewhat similarly to C ([Valid JavaScript variable names in ES5 · Mathias Bynens](https://mathiasbynens.be/notes/javascript-identifiers))

Of the languages I thought of here, only Perl, R, and Fortran don’t seem to support unicode. And only C and Javascript support using `\U` or `\u` escapes. None support latex- or html-like entity names.

---

_[View the full topic](https://discourse.julialang.org/t/syntax-escape-hatch-for-unicode-haters/108363)._
