Back
Asciify Logo
Asciify
ˆŠ

ASCII 137

Per mille signLowercase e with umlaut

ASCII 137 is ‰ on Windows and ë in old DOS.

‰ (Per Mille Sign) is byte 137 in Windows-1252, Unicode U+2030. It means parts per thousand, the way % means parts per hundred. Germans know it from drink-driving rules, where the limit is 0,5 ‰ (Promille). The trap is a factor of ten. The US reports blood alcohol in percent, so 0.8 ‰ and 0.08 % describe the same level, and a ‰ misread as % is off by exactly ten. A rarer relative, ‱ (U+2031) for parts per ten thousand, isn't in Windows-1252 at all. In UTF-8 it's E2 80 B0, garbled as ‰. The HTML entity is ‰.

ë (Small E with Diaeresis) is byte 137 in code page 437, the original IBM PC character set, and maps to Unicode U+00EB. Windows-1252 has the per mille sign ‰ at 137, so DOS text read as Windows-1252 turns Noël into No‰l. Code page 850 kept ë at 137 too.

PunctuationLatin Letter

Technical Details

Technical Details

Code Example

</>
#include <stdio.h>
int main(void) {
/* On Windows (code page 1252) byte 137 is ‰.
Modern terminals expect UTF-8, so print the code point, not the byte. */
printf("\u2030\n"); /* UTF-8: E2 80 B0 */
unsigned char b = 137; /* the raw Windows-1252 byte */
printf("%d 0x%02X\n", b, b); /* 137 0x89 */
return 0;
}

Code Example

</>
#include <stdio.h>
int main(void) {
/* Byte 137 is ë only on a console using code page 437
(chcp 437 on Windows, or DOSBox). On a UTF-8 terminal the
lone byte 0x89 is invalid and prints as garbage, often �. */
putchar(137);
/* char is signed on x86, so a plain char holding 0x89 is -119.
Use unsigned char when you compare or index by byte value. */
char c = (char)137;
unsigned char u = 137;
printf("\n%d %d\n", c, u); /* -119 137 */
/* Portable: print the Unicode character as UTF-8 instead. */
printf("\u00EB\n"); /* C3 AB */
return 0;
}

How to Type It

Windows
Hold Alt and type 0137 on the numeric keypad, with Num Lock on. The leading zero picks the Windows code page. No numeric keypad? In Word, type 2030 and press Alt+X.
Mac
Press Option+Shift+R.
Linux
In GNOME, or any desktop running IBus, press Ctrl+Shift+U, type 2030, then Space. With a Compose key set up, press Compose, percent, o.
Phone
Tap the character at the top of this page to copy it.

How to Type It

Windows
Hold Alt and type 137 on the numeric keypad, with no leading zero. Windows reads it as a DOS code and inserts ë.

ë is also ASCII 235 on Windows, which has the full guide.

Frequently Asked Questions

  • In German it's 0,5 ‰ with a space, the same rule German applies to %. English writing usually drops the space before %, and ‰ should follow whatever you do for %. Either way, use a non-breaking space so the sign never wraps onto the next line by itself.

  • Put the sign in the format pattern and the value gets multiplied by 1000 for you, the way % multiplies by 100. In C#, `(0.0005).ToString("0.0‰")` gives 0.5‰, with your culture's decimal separator. Java's DecimalFormat treats \u2030 in a pattern the same way. Pass the raw fraction, not a number you already scaled, or the result comes out a thousand times too big.

  • It's an ë. The file was saved with a DOS code page, where ë is byte 137, and it's being decoded as Windows-1252, which has ‰ there. Dutch text shows it most, with België turning into Belgi‰. In C#, `File.ReadAllText("old.txt", Encoding.GetEncoding(850))` reads it correctly, but on .NET Core and later that call fails until you register CodePagesEncodingProvider.

Frequently Asked Questions

  • It's an ë. The file was saved with a DOS code page, where ë is byte 137, and it's being decoded as Windows-1252, which has ‰ there. Dutch text shows it most, with België turning into Belgi‰. In C#, `File.ReadAllText("old.txt", Encoding.GetEncoding(850))` reads it correctly, but on .NET Core and later that call fails until you register CodePagesEncodingProvider.

@workani&@alexluthor
Privacy & legal

Privacy

No accounts, no ads, no tracking cookies, and no cross-site tracking. The only analytics we keep are faceless — anonymous, aggregated counts of pages and searches, never tied to you. We store no IP addresses, set no tracking cookies, and build no profiles. Cloudflare hosts the site and handles requests for delivery and security.

Full privacy policy·Extension privacy·legal@asciify.dev

Attributions & licenses

Twemoji
© Twitter, Inc and other contributors · CC-BY 4.0
Noto Color Emoji
© Google · Apache 2.0
Fluent UI Emoji
© Microsoft · MIT
OpenMoji
© HfG Schwäbisch Gmünd · CC-BY-SA 4.0
Toss Face
© Viva Republica (Toss) · SIL OFL 1.1
JoyPixels
© JoyPixels Inc. · Free Limited Use License
SerenityOS Emoji
© The SerenityOS Developers · BSD-2-Clause
EmojiTwo
© EmojiTwo contributors · CC-BY 4.0
Apple Color Emoji
© Apple, Inc.
Facebook Emoji
© Meta Platforms, Inc.

Apple and Facebook emoji styles are proprietary and shown here solely for reference and comparison — a common-sense application of nominative-use / fair-use principles. asciify is not affiliated with, endorsed by, or sponsored by Apple, Inc., Meta Platforms, Inc., or any other rights holder listed above. If a rights holder requests removal of their emoji style from this site, it will be removed.

All other vendor emoji are reproduced for reference and comparison under their respective open licenses listed above.

Character names and code points from the Unicode® Standard. Unicode® and the Unicode Logo are registered trademarks of Unicode, Inc.

Privacy
© asciify.dev 2025-2026