A tiny font ... Eastern European edition

In a previous post I created a little replacement font for the Adafruit Graphics Library, but left the non-ASCII characters (values > 0x7F, 128 in total) completely blank. This is because this area is used to implement the additional symbols necessary for languages other than English, and I had initially just intended to create an English language font for my own purposes.

Obviously you can't represent all of the necessary symbols for all the world's languages in just 128 slots, and this is where ISO 8859 comes in*. There are 16 ISO/IEC 8859 character sets which implement the symbols for loosely related (and sometimes unrelated) languages in the upper 128 bytes.

The most common one is probably ISO 8859-1 which can represent most of the EU's main languages, so it should be a pretty sensible one to implement. However since I live in the Czech Republic and I love Central\Eastern Europe I decided to implement ISO 8859-2 which covers Bosnian, Polish, Croatian, Czech, Slovak, Slovene, Serbian, and Hungarian and looks like the below

Note: the above rendering I picked up someplace on the internet is actually incorrect - when the letters t and d have a caron/haček it actually looks more like an apostrophe - ď and ť.

I only implemented this for my slimmer 3x8 font, but if there's any interest I can quickly put together something for the Adafruit 5x8 one or attempt a different character set so long as it's based based on a latin script. Sadly I'm not sure if my skills are up to the task of creating something tougher like Chinese, Tamil or Thai.

I'm a novice at font design, but looking at the required diacritics it seemed to make sense to reserve the top two rows for things like Haček (e.g. č, ř and ž) and Čarka (e.g. á, ý and é) and the bottom row for anything below the letters - which leaves a 3x5 space in the middle to implement the root of each letter - which I managed to do with a couple of exceptions. Here's a quick visualisation of this:

So for example if we want to create the letter "č" it would look something like this:

With only three columns available there are a number of characters which will look a little weird - the worst of which were Đ, § and ď - and the Albanian characters with the tail (ç, ţ and the like). Here's what the font looks like:

It's a little cramped - with some characters appearing to be joined to those above/below - which is due to the fact that the top rows were previously blank and served as line spacing.

I've pushed this into my fork of the Adafruit GFX Library repo on github - check it out and copy the whole thing into your Arduino libraries folder to install it. Note that the Arduino IDE saves files using UTF-8 encoding, so you can't just throw string literals in and assume they'll work - the simplest way to output a string using this character set is to manually enter the hex values. 

So if we want to have the string representation of a nice little Czech sentence, we'd encode it as follows:

When we pass this to display.write() - not display.print(), which will just output the numeric values - we'll see this:

* = Yes I know that we have unicode to properly address this problem, but it's quite complex and is mercifully not used by the Adafruit Graphics library for simplicity's sake.

12 responses
I would love to get the 5x7 fonts .
What format do you need them in? It's a while ago that I wrote this, but I think the original font is available in a few different formats (OTF/TTF). If you have some binary format it shouldn't be too tricky to write a converter for the code I've written - let me know if you'd like hand
Hi, is it possible to use it somehow on ili9341 screen? This screen uses adafruit gfx lib too. I would need just 2 sizes of font. It doesn't matter what kind of font it would be. I just need to print polish fonts on the screen :) Can You help me with that ?
I've just tried Your lib on my screen (ili9341) and it worked but only for : font3x7_iso8859-2.h Unfortunately font 5x7 is not working with latin. Could You please provide also the 5x7 font because the smaller one is not looking good on my screen (very small and when resized hard to read). The perfect scenario would be to have adafruit 5x7 default font extended with latin. Is it possible? Are You able to help with that ?
Any chance for that ?
Hey Pawel - sorry I've been a little distracted lately. I made a quick attempt at this - wanna take the contents of the gist below and let me know how you get on? https://gist.github.com/smcl/cc349edbd371e353f2...
Here is what I did: I've created new file in Adafruit-GFX-Library with a name: font5x7_iso8859-2.h I've copied into this file https://gist.github.com/smcl/cc349edbd371e353f2... but with a small change from this: // Slightly updated 5x7 font for ISO8859-2 #ifndef FONT5X7_H #define FONT5X7_H #ifdef __AVR__ #include #include #elif defined(ESP8266) #include #else #define PROGMEM #endif // Standard ASCII 5x7 font to this: // Slightly updated 5x7 font for ISO8859-2 #ifndef FONT5X7_H #define FONT5X7_H // Standard ASCII 5x7 font #define FONTWIDTH 5 And under glcdfont.h I've changed #include "font3x7_iso8859-2.h" to #include "font5x7_iso8859-2.h" And it's working nice with tft.write() but in whole of my code I'm using tft.print() and I would like to only replace some chars in the String instead cutting tft.print() and separating it with tft.write(). How to do this? I was trying to use something like tft.print(\0xfd); but it's not working :/
The print() method should be able to handle these characters too if I'm not mistaken. Can I just check I'm understanding you correctly - you've got something like the following which prints a message char msg[32] = { 0x44, 0x6f, 0x62, 0x72, 0xfd, 0x20, 0x64, 0x65, 0x6e, 0x2c, 0x20, 0x6a, 0x61, 0x6b, 0x20, 0x73, 0x65, 0x20, 0x6d, 0xe1, 0xb9, 0x3f, NULL }; for (int i=0x0; i
Sorry, Posthaven decided to truncate my comment because it had a "<" in the code snippet! Basically I was just wanting to ask if calling tft.write() on each character in "msg" worked, but calling tft.print(msg) didn't. If you have a bit of code I can build + run then I'm happy to try it out if you share it here (or mail to sean@mclemon.io). In the meantime if you want to do a little comparison between the setup() and loop() methods you have then I have an example up at https://gist.github.com/smcl/3f1e4318d6a2520c74... - there will be some differences (like pins etc) but perhaps something will stand out?
I've sent you my code on the e-mail. I will try to clarify where is my problem. I'm using strings in this way: 1. tft.print("This is example of a String on my TFT"); 2. String msg = "This is example of a String on my TFT"; tft.print(msg); I could use string.toCharArray(buf, len) and then replace the ó to 0xf3 but this will complicate my code because to do that I need to know the length of a char array or declare array big enough to be able to put any string inside and empty spaces fill with null or whatever. So I would rather like to do something like this: tft.print("This is exampl\0xf3 of a String on my TFT"); Just to replace some chars to codes. But it didn't worked for me :/
I have updated Your code as below. Some polish letters looks weird :) especially those with tails. Tails are pointing to wrong side. I mean those letters: ą Ą. Tails of those letters could be as ę in Your 8859-2 table. And Ł is too high. I don't know how You preparing those fonts but if it's not so hard then maybe You could prepare also some signs like arrows, smiles etc because there is a plenty free space from 0x80 to 0x9f. Now it is unused and it already takes some space in memory. font5x7_iso8859-2.h file: // Slightly updated 5x7 font for ISO8859-2 #ifndef FONT5X7_H #define FONT5X7_H // Standard ASCII 5x7 font #define FONTWIDTH 5 static const unsigned char font[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, // 0x00 NULL 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, // 0x01 START OF HEADING 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, // 0x02 START OF TEXT 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, // 0x03 END OF TEXT 0x18, 0x3C, 0x7E, 0x3C, 0x18, // 0x04 END OF TRANSMISSION 0x1C, 0x57, 0x7D, 0x57, 0x1C, // 0x05 ENQUIRY 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, // 0x06 ACK 0x00, 0x18, 0x3C, 0x18, 0x00, // 0x07 BELL 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, // 0x08 BACKSPACE 0x00, 0x18, 0x24, 0x18, 0x00, // 0x09 HORIZONTAL TAB 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, // 0x0a LINE FEED 0x30, 0x48, 0x3A, 0x06, 0x0E, // 0x0b VERTICAL TAB 0x26, 0x29, 0x79, 0x29, 0x26, // 0x0c FORM FEED 0x40, 0x7F, 0x05, 0x05, 0x07, // 0x0d CARRIAGE RETURN 0x40, 0x7F, 0x05, 0x25, 0x3F, // 0x0e SHIFT OUT 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, // 0x0f SHIFT IN 0x7F, 0x3E, 0x1C, 0x1C, 0x08, // 0x10 DATA LINK ESCAPE 0x08, 0x1C, 0x1C, 0x3E, 0x7F, // 0x11 DEVICE CONTROL 1 0x14, 0x22, 0x7F, 0x22, 0x14, // 0x12 DEVICE CONTROL 2 0x5F, 0x5F, 0x00, 0x5F, 0x5F, // 0x13 DEVICE CONTROL 3 0x06, 0x09, 0x7F, 0x01, 0x7F, // 0x14 DEVICE CONTROL 4 0x00, 0x66, 0x89, 0x95, 0x6A, // 0x15 NEGATIVE ACK 0x60, 0x60, 0x60, 0x60, 0x60, // 0x16 SYNCHRONOUS IDLE 0x94, 0xA2, 0xFF, 0xA2, 0x94, // 0x17 BLOCK 0x08, 0x04, 0x7E, 0x04, 0x08, // 0x18 CANCEL 0x10, 0x20, 0x7E, 0x20, 0x10, // 0x19 END OF MEDIUM 0x08, 0x08, 0x2A, 0x1C, 0x08, // 0x1a SUBSTITUTE 0x08, 0x1C, 0x2A, 0x08, 0x08, // 0x1b ESCAPE 0x1E, 0x10, 0x10, 0x10, 0x10, // 0x1c FILE SEPARATOR 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, // 0x1d GROUP SEPARATOR 0x30, 0x38, 0x3E, 0x38, 0x30, // 0x1e RECORD SEPARATOR 0x06, 0x0E, 0x3E, 0x0E, 0x06, // 0x1f UNIT SEPARATOR 0x00, 0x00, 0x00, 0x00, 0x00, // 0x20 SPACE 0x00, 0x00, 0x5F, 0x00, 0x00, // 0x21 ! 0x00, 0x07, 0x00, 0x07, 0x00, // 0x22 " 0x14, 0x7F, 0x14, 0x7F, 0x14, // 0x23 # 0x24, 0x2A, 0x7F, 0x2A, 0x12, // 0x24 $ 0x23, 0x13, 0x08, 0x64, 0x62, // 0x25 % 0x36, 0x49, 0x56, 0x20, 0x50, // 0x26 & 0x00, 0x08, 0x07, 0x03, 0x00, // 0x27 ' 0x00, 0x1C, 0x22, 0x41, 0x00, // 0x28 ( 0x00, 0x41, 0x22, 0x1C, 0x00, // 0x29 ) 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, // 0x2a * 0x08, 0x08, 0x3E, 0x08, 0x08, // 0x2b + 0x00, 0x80, 0x70, 0x30, 0x00, // 0x2c , 0x08, 0x08, 0x08, 0x08, 0x08, // 0x2d - 0x00, 0x00, 0x60, 0x60, 0x00, // 0x2e . 0x20, 0x10, 0x08, 0x04, 0x02, // 0x2f / 0x3E, 0x51, 0x49, 0x45, 0x3E, // 0x30 0 0x00, 0x42, 0x7F, 0x40, 0x00, // 0x31 1 0x72, 0x49, 0x49, 0x49, 0x46, // 0x32 2 0x21, 0x41, 0x49, 0x4D, 0x33, // 0x33 3 0x18, 0x14, 0x12, 0x7F, 0x10, // 0x34 4 0x27, 0x45, 0x45, 0x45, 0x39, // 0x35 5 0x3C, 0x4A, 0x49, 0x49, 0x31, // 0x36 6 0x41, 0x21, 0x11, 0x09, 0x07, // 0x37 7 0x36, 0x49, 0x49, 0x49, 0x36, // 0x38 8 0x46, 0x49, 0x49, 0x29, 0x1E, // 0x39 9 0x00, 0x00, 0x14, 0x00, 0x00, // 0x3a : 0x00, 0x40, 0x34, 0x00, 0x00, // 0x3b ; 0x00, 0x08, 0x14, 0x22, 0x41, // 0x3c 0x02, 0x01, 0x59, 0x09, 0x06, // 0x3f ? 0x3E, 0x41, 0x5D, 0x59, 0x4E, // 0x40 @ 0x7C, 0x12, 0x11, 0x12, 0x7C, // 0x41 A 0x7F, 0x49, 0x49, 0x49, 0x36, // 0x42 B 0x3E, 0x41, 0x41, 0x41, 0x22, // 0x43 C 0x7F, 0x41, 0x41, 0x41, 0x3E, // 0x44 D 0x7F, 0x49, 0x49, 0x49, 0x41, // 0x45 E 0x7F, 0x09, 0x09, 0x09, 0x01, // 0x46 F 0x3E, 0x41, 0x41, 0x51, 0x73, // 0x47 G 0x7F, 0x08, 0x08, 0x08, 0x7F, // 0x48 H 0x00, 0x41, 0x7F, 0x41, 0x00, // 0x49 I 0x20, 0x40, 0x41, 0x3F, 0x01, // 0x4a J 0x7F, 0x08, 0x14, 0x22, 0x41, // 0x4b K 0x7F, 0x40, 0x40, 0x40, 0x40, // 0x4c L 0x7F, 0x02, 0x1C, 0x02, 0x7F, // 0x4d M 0x7F, 0x04, 0x08, 0x10, 0x7F, // 0x4e N 0x3E, 0x41, 0x41, 0x41, 0x3E, // 0x4f O 0x7F, 0x09, 0x09, 0x09, 0x06, // 0x50 P 0x3E, 0x41, 0x51, 0x21, 0x5E, // 0x51 Q 0x7F, 0x09, 0x19, 0x29, 0x46, // 0x52 R 0x26, 0x49, 0x49, 0x49, 0x32, // 0x53 S 0x03, 0x01, 0x7F, 0x01, 0x03, // 0x54 T 0x3F, 0x40, 0x40, 0x40, 0x3F, // 0x55 U 0x1F, 0x20, 0x40, 0x20, 0x1F, // 0x56 V 0x3F, 0x40, 0x38, 0x40, 0x3F, // 0x57 W 0x63, 0x14, 0x08, 0x14, 0x63, // 0x58 X 0x03, 0x04, 0x78, 0x04, 0x03, // 0x59 Y 0x61, 0x59, 0x49, 0x4D, 0x43, // 0x5a Z 0x00, 0x7F, 0x41, 0x41, 0x41, // 0x5b [ 0x02, 0x04, 0x08, 0x10, 0x20, // 0x5c BACKSLASH 0x00, 0x41, 0x41, 0x41, 0x7F, // 0x5d ] 0x04, 0x02, 0x01, 0x02, 0x04, // 0x5e ^ 0x40, 0x40, 0x40, 0x40, 0x40, // 0x5f _ 0x00, 0x03, 0x07, 0x08, 0x00, // 0x60 ` 0x20, 0x54, 0x54, 0x78, 0x40, // 0x61 a 0x7F, 0x28, 0x44, 0x44, 0x38, // 0x62 b 0x38, 0x44, 0x44, 0x44, 0x28, // 0x63 c 0x38, 0x44, 0x44, 0x28, 0x7F, // 0x64 d 0x38, 0x54, 0x54, 0x54, 0x18, // 0x65 e 0x00, 0x08, 0x7E, 0x09, 0x02, // 0x66 f 0x18, 0xA4, 0xA4, 0x9C, 0x78, // 0x67 g 0x7F, 0x08, 0x04, 0x04, 0x78, // 0x68 h 0x00, 0x44, 0x7D, 0x40, 0x00, // 0x69 i 0x20, 0x40, 0x40, 0x3D, 0x00, // 0x6a j 0x7F, 0x10, 0x28, 0x44, 0x00, // 0x6b k 0x00, 0x41, 0x7F, 0x40, 0x00, // 0x6c l 0x7C, 0x04, 0x78, 0x04, 0x78, // 0x6d m 0x7C, 0x08, 0x04, 0x04, 0x78, // 0x6e n 0x38, 0x44, 0x44, 0x44, 0x38, // 0x6f o 0xFC, 0x18, 0x24, 0x24, 0x18, // 0x70 p 0x18, 0x24, 0x24, 0x18, 0xFC, // 0x71 q 0x7C, 0x08, 0x04, 0x04, 0x08, // 0x72 r 0x48, 0x54, 0x54, 0x54, 0x24, // 0x73 s 0x04, 0x04, 0x3F, 0x44, 0x24, // 0x74 t 0x3C, 0x40, 0x40, 0x20, 0x7C, // 0x75 u 0x1C, 0x20, 0x40, 0x20, 0x1C, // 0x76 v 0x3C, 0x40, 0x30, 0x40, 0x3C, // 0x77 w 0x44, 0x28, 0x10, 0x28, 0x44, // 0x78 x 0x4C, 0x90, 0x90, 0x90, 0x7C, // 0x79 y 0x44, 0x64, 0x54, 0x4C, 0x44, // 0x7a z 0x00, 0x08, 0x36, 0x41, 0x00, // 0x7b { 0x00, 0x00, 0x77, 0x00, 0x00, // 0x7c | 0x00, 0x41, 0x36, 0x08, 0x00, // 0x7d } 0x02, 0x01, 0x02, 0x04, 0x02, // 0x7e ~ 0x3C, 0x26, 0x23, 0x26, 0x3C, // 0x7f 0x1E, 0xA1, 0xA1, 0x61, 0x12, // 0x80 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x81 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x82 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x83 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x84 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x85 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x86 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x87 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x88 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x89 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x8a 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x8b 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x8c 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x8d 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x8e 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x8f 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x90 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x91 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x92 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x93 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x94 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x95 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x96 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x97 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x98 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x99 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x9a 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x9b 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x9c 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x9d 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x9e 0xFF, 0x81, 0x01, 0x81, 0xFF, // 0x9f 0x00, 0x00, 0x00, 0x00, 0x00, // 0xa0 0x78, 0x14, 0x54, 0x94, 0x78, // 0xa1 Ą 0x01, 0x02, 0x02, 0x02, 0x01, // 0xa2 ˘ 0x10, 0x7F, 0x48, 0x44, 0x40, // 0xa3 Ł 0x42, 0x3C, 0x24, 0x3C, 0x42, // 0xa4 ¤ 0x7C, 0x41, 0x42, 0x40, 0x40, // 0xa5 Ľ 0x48, 0x54, 0x56, 0x55, 0x34, // 0xa6 Ś 0x4A, 0x55, 0x55, 0x55, 0x29, // 0xa7 § 0x00, 0x01, 0x00, 0x01, 0x00, // 0xa8 ¨ 0x48, 0x55, 0x56, 0x55, 0x34, // 0xa9 Š 0x48, 0xD4, 0xD4, 0x54, 0x34, // 0xaa Ş 0x04, 0x05, 0x7E, 0x05, 0x04, // 0xab Ť 0x64, 0x54, 0x56, 0x55, 0x4C, // 0xac Ź 0x10, 0x10, 0x10, 0x10, 0x10, // 0xad - 0x64, 0x55, 0x56, 0x55, 0x4C, // 0xae Ž 0x64, 0x54, 0x55, 0x54, 0x4C, // 0xaf Ż 0x00, 0x00, 0x00, 0x00, 0x00, // 0x00, 0x02, 0x05, 0x02, 0x00, // 0xb0 ° 0x20, 0x54, 0xD4, 0xF8, 0x40, // 0xb1 ą 0x00, 0x00, 0x40, 0x80, 0x00, // 0xb2 ˛ 0x00, 0x52, 0x7E, 0x48, 0x00, // 0xb3 ł 0x00, 0x00, 0x02, 0x01, 0x00, // 0xb4 ´ 0x00, 0x44, 0x7C, 0x41, 0x02, // 0xb5 ľ 0x00, 0x50, 0x7A, 0x29, 0x00, // 0xb6 ś 0x00, 0x01, 0x02, 0x01, 0x00, // 0xb7 ˇ 0x00, 0x00, 0x80, 0x40, 0x00, // 0xb8 ¸ 0x00, 0x51, 0x7A, 0x29, 0x00, // 0xb9 š 0x00, 0x50, 0xF8, 0x28, 0x00, // 0xba ş 0x00, 0x08, 0x3C, 0x49, 0x22, // 0xbb ť 0x00, 0x68, 0x7A, 0x59, 0x00, // 0xbc ź 0x00, 0x02, 0x01, 0x02, 0x01, // 0xbd ˝ 0x00, 0x69, 0x7A, 0x59, 0x00, // 0xbe ž 0x00, 0x68, 0x7A, 0x58, 0x00, // 0xbf ż 0x7C, 0x14, 0x16, 0x15, 0x68, // 0xc0 Ŕ 0x78, 0x14, 0x16, 0x15, 0x78, // 0xc1 Á 0x78, 0x16, 0x15, 0x16, 0x78, // 0xc2 Â 0x79, 0x16, 0x16, 0x16, 0x79, // 0xc3 Ă 0x78, 0x15, 0x14, 0x15, 0x78, // 0xc4 Ä 0x7C, 0x40, 0x42, 0x41, 0x40, // 0xc5 Ĺ 0x38, 0x44, 0x46, 0x45, 0x44, // 0xc6 Ć 0x38, 0xC4, 0x44, 0x44, 0x44, // 0xc7 Ç 0x38, 0x45, 0x46, 0x45, 0x44, // 0xc8 Č 0x7C, 0x54, 0x56, 0x55, 0x44, // 0xc9 É 0x7C, 0x54, 0xD4, 0x54, 0x44, // 0xca Ę 0x7C, 0x55, 0x54, 0x55, 0x44, // 0xcb Ë 0x7C, 0x55, 0x56, 0x55, 0x44, // 0xcc Ě 0x00, 0x44, 0x7E, 0x45, 0x00, // 0xcd Í 0x00, 0x46, 0x7D, 0x46, 0x00, // 0xce Î 0x7C, 0x45, 0x46, 0x45, 0x38, // 0xcf Ď 0x10, 0x7C, 0x54, 0x44, 0x38, // 0xd0 Đ 0x7C, 0x08, 0x12, 0x21, 0x7C, // 0xd1 Ń 0x7C, 0x09, 0x12, 0x21, 0x7C, // 0xd2 Ň 0x38, 0x44, 0x46, 0x45, 0x38, // 0xd3 Ó 0x38, 0x46, 0x45, 0x46, 0x38, // 0xd4 Ô 0x38, 0x46, 0x45, 0x46, 0x39, // 0xd5 Ő 0x38, 0x45, 0x44, 0x45, 0x38, // 0xd6 Ö 0x44, 0x28, 0x10, 0x28, 0x44, // 0xd7 × 0x7C, 0x15, 0x16, 0x15, 0x68, // 0xd8 Ř 0x3C, 0x40, 0x42, 0x40, 0x3C, // 0xd9 Ů 0x3C, 0x40, 0x42, 0x41, 0x3C, // 0xda Ú 0x3C, 0x42, 0x41, 0x42, 0x3D, // 0xdb Ű 0x3C, 0x41, 0x40, 0x41, 0x3C, // 0xdc Ü 0x04, 0x08, 0x72, 0x09, 0x04, // 0xdd Ý 0x00, 0x44, 0x3C, 0x04, 0x00, // 0xde Ţ 0xFE, 0x49, 0x89, 0x96, 0x60, // 0xdf ß 0x78, 0x10, 0x0A, 0x09, 0x10, // 0xe0 ŕ 0x20, 0x54, 0x56, 0x79, 0x40, // 0xe1 á 0x20, 0x56, 0x55, 0x7A, 0x40, // 0xe2 â 0x21, 0x56, 0x56, 0x7A, 0x41, // 0xe3 ă 0x20, 0x55, 0x54, 0x79, 0x40, // 0xe4 ä 0x02, 0x45, 0x7C, 0x40, 0x00, // 0xe5 ĺ 0x30, 0x48, 0x4A, 0x49, 0x48, // 0xe6 ć 0x30, 0xC8, 0x48, 0x48, 0x48, // 0xe7 ç 0x30, 0x49, 0x4A, 0x49, 0x48, // 0xe8 č 0x38, 0x54, 0x56, 0x55, 0x08, // 0xe9 é 0x38, 0x54, 0xD4, 0x54, 0x08, // 0xea ę 0x38, 0x55, 0x54, 0x55, 0x08, // 0xeb ë 0x38, 0x55, 0x56, 0x55, 0x08, // 0xec ě 0x00, 0x40, 0x7A, 0x41, 0x00, // 0xed í 0x00, 0x42, 0x79, 0x42, 0x00, // 0xee î 0x20, 0x70, 0x50, 0x7D, 0x02, // 0xef ď 0x20, 0x70, 0x54, 0x7E, 0x04, // 0xf0 đ 0x78, 0x10, 0x0A, 0x09, 0x70, // 0xf1 ń 0x78, 0x11, 0x0A, 0x09, 0x70, // 0xf2 ň 0x30, 0x48, 0x4A, 0x49, 0x30, // 0xf3 ó 0x30, 0x4A, 0x49, 0x4A, 0x30, // 0xf4 ô 0x30, 0x4A, 0x49, 0x4A, 0x31, // 0xf5 ő 0x30, 0x49, 0x48, 0x49, 0x30, // 0xf6 ö 0x00, 0x10, 0x54, 0x10, 0x00, // 0xf7 ÷ 0x78, 0x11, 0x0A, 0x09, 0x10, // 0xf8 ř 0x38, 0x40, 0x42, 0x20, 0x78, // 0xf9 ů 0x38, 0x40, 0x42, 0x21, 0x78, // 0xfa ú 0x38, 0x42, 0x41, 0x22, 0x79, // 0xfb ű 0x38, 0x41, 0x40, 0x21, 0x78, // 0xfc ü 0x18, 0xA0, 0xA2, 0xA1, 0x78, // 0xfd ý 0x00, 0x08, 0xFC, 0x48, 0x00, // 0xfe ţ 0x00, 0x00, 0x00, 0x00, 0x00 // 0xff ˙ }; #endif // FONT5X7_H It will be easy for everyone to find a char in it.
Will You be able to do something as I mentioned earlier? "Some polish letters looks weird :) especially those with tails. Tails are pointing to wrong side. I mean those letters: ą Ą. Tails of those letters could be as ę in Your 8859-2 table. And Ł is too high. I don't know how You preparing those fonts but if it's not so hard then maybe You could prepare also some signs like arrows, smiles etc because there is a plenty free space from 0x80 to 0x9f. Now it is unused and it already takes some space in memory." Maybe I could help You somehow if I would know how You did this