Back
Asciify Logo
Asciify
îð

ASCII 239

Lowercase i with umlautIntersection

ASCII 239 is ï on Windows and ∩ in old DOS.

ï (Small I with Diaeresis) is byte 239 in Windows-1252, Unicode U+00EF. French writes naïf and haïr with it, and Dutch ruïne. There's also an ï that isn't a letter at all: the one in  at the very start of a page or file. That's the UTF-8 byte order mark, the bytes EF BB BF, read as Windows-1252. Some editors add it when saving as UTF-8, and the effects are out of all proportion to three bytes: a CSV whose first header reads id instead of id, a PHP file that outputs the mark before its headers and triggers a headers already sent error, or a JSON file that Python rejects with Unexpected UTF-8 BOM. Save the file as UTF-8 without BOM, or read it with the utf-8-sig codec, which strips the mark. Old DOS had ï at 139. The letter's own UTF-8 bytes are C3 AF. The HTML entity is ï.

∩ (Intersection) is byte 239 in code page 437, the original IBM PC character set, and maps to Unicode U+2229. In set notation A ∩ B is everything that's in both A and B, the counterpart of the union ∪ (U+222A), which code page 437 doesn't have. In a Windows console, ∩ can signal something else entirely: ∩╗┐ at the start of output is a UTF-8 byte order mark (EF BB BF) printed in code page 437, from a file saved as UTF-8 with BOM. Strip the BOM or read the file with a BOM-aware decoder. Code page 850 put ´ on this byte. In UTF-8, ∩ is E2 88 A9, and the HTML entity is ∩.

Latin LetterMath Symbol

Technical Details

Technical Details

Code Example

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

Code Example

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

How to Type It

Windows
Hold Alt and type 0239 on the numeric keypad, with Num Lock on. The leading zero picks the Windows code page. Alt+139, without the zero, types it too. No numeric keypad? In Word, type 00EF and press Alt+X.
Mac
Press Option+U, then i.
Linux
In GNOME, or any desktop running IBus, press Ctrl+Shift+U, type ef, then Space. With a Compose key set up, press Compose, quote, i.
Phone
Long-press i and pick ï.

How to Type It

Windows
Hold Alt and type 239 on the numeric keypad, with no leading zero. US PCs insert ∩, but PCs set to code page 850, common in Western Europe, insert ´. No numeric keypad? In Word, type 2229 and press Alt+X.
Mac
Press Control+Command+Space to open the Character Viewer, then search for "intersection".
Linux
In GNOME, or any desktop running IBus, press Ctrl+Shift+U, type 2229, then Space.
Phone
Phone keyboards have no key for it. Tap the character at the top of this page to copy it.

Frequently Asked Questions

  • It depends on who opens it. Excel on Windows needs the BOM to recognize a CSV as UTF-8, so exports meant for people to double-click should include it. Files that code will read are safer without it. If one file has to serve both, keep the BOM and make sure your own parsers skip it.

  • The file most likely starts with a UTF-8 byte order mark. Node's fs.readFileSync(path, 'utf8') keeps it as an invisible \uFEFF at the front of the string, and JSON.parse refuses it. Strip it before parsing with `text.replace(/^\uFEFF/, '')`, or save the file without a BOM in the first place.

  • Both are correct. Merriam-Webster lists naive first with naïve as a variant, and most everyday writing leaves the dots off. Keep them if you like the French look, but then use them every time, because a search for naive won't match naïve unless the tool ignores accents.

  • Sometimes it's the only thing telling two words apart. French maïs means corn and mais means but, so accent-insensitive search or a slug generator that strips diacritics merges them.

Frequently Asked Questions

  • In Python, convert to sets and use &: `set(a) & set(b)` gives the elements both lists share. SQL has the INTERSECT operator for two queries with matching columns. Newer JavaScript engines add Set.prototype.intersection, and elsewhere you can filter one array against a Set built from the other.

@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