Inverted exclamation markLowercase i with acute accent
ASCII 161 is ¡ on Windows and í in old DOS.
¡ (Inverted Exclamation Mark) is byte 161 in Windows-1252, Unicode U+00A1. Spanish opens every exclamation with it, and it goes where the exclamation starts, not where the sentence starts: Si llegas tarde, ¡avísame! Input validation is where it gets lost. A whitelist like [A-Za-z0-9 .,!?] written with English in mind rejects ¡ along with every accented letter, so a Spanish user can't submit an ordinary sentence. Allow Unicode letters and the Spanish marks ¡ and ¿ explicitly. Old DOS had it too, at 173. In UTF-8 it's C2 A1, which misreads as ¡. The HTML entity is ¡.
í (Small I with Acute) is byte 161 in code page 437, the original IBM PC character set, and maps to Unicode U+00ED. Windows-1252 has the inverted exclamation mark ¡ at 161, so Spanish DOS text read as Windows-1252 turns día into d¡a and aquí into aqu¡. Code page 850 kept í at 161 too.
#include <stdio.h>int main(void) {/* On Windows (code page 1252) byte 161 is ¡.Modern terminals expect UTF-8, so print the code point, not the byte. */printf("\u00A1\n"); /* UTF-8: C2 A1 */unsigned char b = 161; /* the raw Windows-1252 byte */printf("%d 0x%02X\n", b, b); /* 161 0xA1 */return 0;}
#include <stdio.h>int main(void) {/* Byte 161 is í only on a console using code page 437(chcp 437 on Windows, or DOSBox). On a UTF-8 terminal thelone byte 0xA1 is invalid and prints as garbage, often �. */putchar(161);/* char is signed on x86, so a plain char holding 0xA1 is -95.Use unsigned char when you compare or index by byte value. */char c = (char)161;unsigned char u = 161;printf("\n%d %d\n", c, u); /* -95 161 *//* Portable: print the Unicode character as UTF-8 instead. */printf("\u00ED\n"); /* C3 AD */return 0;}
í is also ASCII 237 on Windows, which has the full guide.
In chats, plenty of native speakers do, and nobody will misread you. Formal and published writing still needs the opening mark, and the RAE treats it as required. If you're writing copy for a product, an app or an ad, include it, since readers notice when it's missing there.
Open with both and close in the reverse order, the way you'd nest brackets: ¡¿Qué hiciste?! The other order, ¿¡Qué hiciste!?, is accepted as well. What matters is that each opening mark has its matching closing mark at the other end of the sentence.
A UTF-8 program printing ¡Hola! to a code page 437 console shows ┬íHola!, and the í makes it look like a typo rather than an encoding problem. ¡ is C2 A1 in UTF-8, and the console draws C2 as ┬ and A1 as í. Calling SetConsoleOutputCP(CP_UTF8) at startup, or saving the source in the console's code page, lines the two up.
Those are í's. DOS stores í at byte 161, which is where Windows-1252 keeps the inverted exclamation mark, so día turns into d¡a and así into as¡. A ¡ in the middle of a word gives it away, because real Spanish only uses it to open an exclamation. Decode the file as code page 850 and the words come back whole.
Those are í's. DOS stores í at byte 161, which is where Windows-1252 keeps the inverted exclamation mark, so día turns into d¡a and así into as¡. A ¡ in the middle of a word gives it away, because real Spanish only uses it to open an exclamation. Decode the file as code page 850 and the words come back whole.