Unicode and (Microsoft) ANSI
Unicode ( and (Microsoft) ANSI )
"ANSI " as slang for the "first 256 " : Code Page __ AASI
ANSI as a thing was an attempt to control the different Character – Number lists, in particular the lists under the number 256, rather than being or creating any lists, although some initial draft suggestions were given. Microsoft got into this, some people say hijacked it, taking it over in the mid 1980's, adopting the provisional ANSI suggestions in their first windows in 1985.
The idea at the time centred around giving some identifying name / number for different lists, in the 1 Byte/ 8 Bit lists as discussed so far. In the early to mid-1980's, one main draft suggestion for a 0-255 to character list which covered most common European characters. One of the early Microsoft Lists, which they called a Windows code page, Windows code page 1252 was originally based on that ANSI draft suggestion . This list is very similar to the one from ANSI eventually adopted by the International Organization for Standardization (ISO) Standards, Standard 8859-1. (The idea of the code page was introduced by Microsoft about 1987, It became a general term for a table or list of character codes( numbers) and their corresponding glyphs (characters)
Because of this history, around the mid 1980’s, Microsoft talked about ANSI as the new improved thing compared to ASCII ANSI became a general term for the default code page of a given Operating System, such as Windows, .
For our interest as background to Microsoft VB Strings, when we talk about the characters used under 256 we should probably be referring to the Windows code Page. But following the convention of the historical reference misnomer Perpetration, we would tend to say ANSI.
Such perpetrations feature a lot in comparisons….. examples:
Generally the first 255 list will be referred to as ANSI characters to the 8-bit ANSI code
We might say VB only understands ANSI characters, despite deep in the workings having ……. Unicode xxxxx …….
One way or another, the word code page or ANSI will likely be used as a general term most likely referring to a single Byte, 8 Bit workings in the first 255
A VB string would be described as a ANSI string, under the correct historical reference misnomer Perpetration
I would perhaps suggest perhaps a term such as AASI to be equivalent to "ANSI", where "ANSI" would be likely to be used under the correct historical reference misnomer Perpetration, and this new term AASI could be thought of as a generical term for what people are most likely be referring to as goings-on in a computer either with, or arising from, character processes involved mostly with the first typical 256 (0-255) characters
Unicode
Inevitably something had to be thought about that covered as many things as possible, every character in every language worldwide, and even small pictures, symbols, smiles etc etc.
This came about around 1990, under the general word of Unicode. It is a general term. The idea was to create rules for assigning numbers to all characters on the planet Earth, where characters would extend to things perhaps better described as small unit things typically seen in writings wherever on the plane earth. Maybe like the ANSI idea with an open top end.
The term Unicode is often used imprecisely to refer to whichever Unicode "encoding"** that particular system uses by default. Unicode encoding includes things going by the names of UTF-8, UTF-16, and UTF-32
Putting it another way: Loosely, Unicode is a text encoding standard that defines characters used in various ordinary, literary, academic, and technical contexts in various languages and assigns them abstracted "code points" (numbers). The "encoding" formats (UTF-8, UTF-16 AND UTF-32), on the other hand, define how to translate the standard's abstracted codes for characters into sequences of bytes and thus how they are actually stored in memory)
A few technical terms
_ From ANSI we have the idea 1 Character – 1 number. We make the same thing a bit more advanced sounding by saying 1 Character = 1 Code Point**
_ **The representation in computer memory of a single character (how we write it down), was discussed / shown by the 7 and 8 Bit binary ( 1 Byte ) diagrams for a single decimal "code point" for Ascii/ANSI. We use the smart sounding word Encoding usually in Unicode discussions: Encoding = representation in computer memory of a single character / "how we write it down"
_ In addition to the above we might throw in the word mapping as it sounds good, from time to time. Mostly it is a filler word that probably could be left out completely, as it is usually a general term for any data structure with 'associates' one data value with another.
2 Byte 16 bit stuff (Unicode Encoding)
All this ASCII, "Unicode", ANSI stuff on this page 2 is intended as a background to Microsoft VB Strings, which is in turn intended as a background in learning Win32 API in VBA. So it will be biased towards the Microsoft Unicode Encoding. But just briefly, to put it in perspective, here is a short summary of some of the different encodings, to note briefly but not necessarily needed to understand fully yet:
Code:
UTF-16/ UTF-8
UTF-8 is variable 1 to 4 bytes. – This can be efficient to use for more simple text, (and this has had a bit of a resurgence in recent years, due to some simple text stuff associated with the SmartPhone short message & co.). It may have come after the next one did not take off so well.
UTF-16 is variable 2 or 4 bytes, - but mostly 2, and mostly what Microsoft use. This initial main idea in Unicode encoding is based on using 2 Bytes initially, fixed. The origin is blurred a bit. Backward compatibility is/was hampered a bit, so with this encoding of Unicode, Unicode was impractical, which led to UTF-8. For the first 128, UTF-8 is 1 Byte: UTF-16 is not backwards compatible with ASCII (or any of the ASCII-inclusive 8-bit character encodings). UTF-8, on the other hand is 100% backwards compatible with ASCII
UTF-32 is fixed 4 bytes.
Whenever Microsoft say Unicode in Windows, they almost always actually mean UTF-16
If we wish to concentrate on a working understanding to move forward with VB strings, it may be sufficient to consider that Microsoft’s Unicode encoding is to a first approximation like a 2 column base 256 the wrong way around
A quick working understanding can be got pictorially by comparing and extending the 8 Bit single Byte mapping diagram showing the mapping of a character’s decimal code point to the internal computer binary
Take as example , the decimal number 8230 which in Unicode is the decimal number for a single character looking like 3 small dots close together …
The following sketch shows the code point in UTF-16 2-Byte LE encoding (LE: Little Endian = The wrong way around)
Code:
' Low-end Byte High-end Byte
' 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
' 128 64 32 16 8 4 2 1 128 64 32 16 8 4 2 1
' 0 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0
' 0 + 0 + 32 + 0 + 0 + 4 + 2 + 0 = 38 0 + 0 + 32 + 0 + 0 + 0 + 0 + 0 = 32
'
' 255^0 256^1
' 1 256
' 38 32
' ( 38 x 1 ) + ( 32 x 256 ) = 8230 - calculating the decimal 8230
' Using hexadecimal as the final column numbers, we would have 20 26 , likely seen in literature as U+2026
Study that sketch and it should all look reasonable. In words: The fundamental unit previously was a Byte, 8 Bits. We could get from 0 – 255 with that. Using 2 Bytes one possibility could be to add the numbers giving 0 to 510, but defining the two numbers as in a base system ( 256 in this case ) gives us a much wider range 0 to (255+(256x255))=65535
(By the way, I never heard of this 2 column base 256 idea before in any explanation. I just noticed that it is that, the UTF-16 2-Byte LE encoding.)
Typically in an explanation we might see this as written
38 32 ( or in hexadecimal notation 20 26 )
More likely, however, an explanation tends to not take any larger code point number as example, considering something like the character A, which would look like
65 00 ( or in hexadecimal notation 42 00 )
It then can misleadingly talk about the unused 00 separating characters, which only appears so for the lower code points.
The story again with a few more technical details
There seems to be some tradition of adding something before the 4 digit Unicode UTF-16 2-Byte number , such as U+, to give an indication that we are in a Unicode encoding. In this case we would most likely be in hexadecimal, since the largest 4 digit hexadecimal in this number arrangement fits nicely, as 255 decimal is FF in hexadecimal, the largest 2 digit hexadecimal number. So the U+ means “Unicode” and the numbers are hexadecimal. U+0639 is the Arabic letter Ain. The English letter A would be U+0041. In the meantime we officially have a new name in place of character, a "grapheme" which is defined as the smallest functional unit of a writing system, and assigned a magic number by the Unicode consortium. This magic number is called a code point. In fact a more recent development means that a combination of code points can define a final thing, for example, a basic shape had a code point and then one of a few other code points might define its colour. (The final thing would be called a Glyphs, whereas the concept of graphemes is abstract and similar to the notion in computing of a character. By comparison, a specific shape that represents any particular grapheme in a given typeface is called a glyph).
This largest number we might recognise in literature for the 4 digit Unicode UTF-16 2-Byte as looking something like
U+FFFF
In the literature, the number we considered, decimal 8230, would likely be given as something like U+2026
Hello in Unicode, corresponds to these five code points:
U+0048 U+0065 U+006C U+006C U+006F.
This is still just a bunch of code points. Numbers, really. We haven’t yet said anything about how to store this in memory
That’s where encodings come/ came in.
The first idea was based on 2 Bytes, but as we have noted other encodings are available.
The Single Most Important Fact About Encodings - . It does not make sense to have a string without knowing what encoding it uses.
Generical Term(s), mismomers and the such __ W
We are predominantly involved with Microsoft stuff, and whether "ANSI" or "UNICODE", the terms are and likely will always be used loosely and mostly technically incorrectly. With Unicode the misuse is less from historical mismomers, and more often the word Unicode is misused when referring to the Unicode Encoding used. Microsoft are less precise in things Unicode, often having a general term W for wide when distinguishing from "ANSI". This is of course not without its confusion in its broader sense due to the UTF-8 encoding being as "wide" as "ANSI". However within Microsoft itself the "W" version usually refers to their UTF-16.
We will try in the next post to makes some definitions to help perpetuate and encourage the awareness of the naming impreciseness
Ref
https://www.joelonsoftware.com/2003/...ts-no-excuses/
https://web.archive.org/web/20230321...p?f=30&t=38460 , https://web.archive.org/web/20230321...38460&start=20
https://decodeunicode.org/en/u+10000 , https://eileenslounge.com/viewtopic....297518#p297518
https://web.archive.org/web/20201201...t/tips/varptr/
Unicode (WUnicorn) and (Microsoft) "ANSI" (AASI)
Generical Termsinology relating to computer storage of characters
Xmas New Year 2024 2025
Character sets
The last few posts demonstrate clearly that there is plenty of scope for misuse, poor use, misunderstanding, mismomers, etc., in the use of the terms related to how computers handle characters in memory. It is difficult to move forward in discussions if one even tries to be more accurate and precise, since the extra words piss some people off so much that they at best don't want to read further, and at worst want to kill you.
I would suggest the best compromise would be to have some general terms to help give at least some awareness of the more accurate issues behind, historical and otherwise. These terms can therefore be referenced here for a better understanding and better advancement of mankind.
** AASI
AASI is equivalent to "ANSI", where "ANSI" would be likely to be used under the correct historical reference misnomer Perpetration, and this new term AASI could be thought of as a generical term for what people are most likely be referring to as goings-on in a computer either with, or arising from, character processes involved mostly with the first typical 256 (0-255) characters. More likely in any conversation, we would be more interested in, or we would be interested in differences in, the second half.
** WUnicorn
This will be used as a general term for all things "Unicode" or Unicode but centred around, or with more emphasis on, either the "Wide" equivalent of an "ANSI thing" and/or the typical Microsoft UTF-16 (LE) Unicode Encoding
It would be highly recommended if landing here to briefly read the above posts on this page 2
https://www.excelfox.com/forum/showt...age2#post17877
https://www.excelfox.com/forum/showt...age2#post17878
https://www.excelfox.com/forum/showt...age2#post17879
https://www.excelfox.com/forum/showt...age2#post17880
https://www.excelfox.com/forum/showt...age2#post24946
Generical Termsinology 4 experiment types
Terminology used in discussing experiments centred around VB Strings , in particular when investigating the string parameters in VB(A) win32 API functions
Just the basic 4 forms of VB(A) win32 API functions are detailed here. The significance is the main subject of most of the musings around the last dozen or two postings here.
Straight AASI
The Declareing line is used in the form most often given in VB or VBA literature whereby :
_ string parameters are given As String. ( Further more we note that most often the full parameter would read
ByVal MyStrvariable As String
, but not exclusively so, - there may occasionally be a ByRef instead .)
_ Most typically the win 32 API function given will have a trailing A in it's name, pseudo like MyWin32APIFunctionA
"Half way house" AASI (HWH ASII)
( The terminology arises here from a knowledge of the typical solution that almost always works to get over problems where characters, predominantly those with higher code points, ( > 255 ), may somehow give problems. This solution, just very briefly given here, involves usually 2 adjustments to the Straight AASI
_ In the Declareing line, the typically given As String is replaced by As Lo_____, where Lo_____ may be a Long type such as Long or LongPtr )
The "Half way house" AASI (HWH ASII) replaces the string parameters given As String with As Long or As LongPtr
Full WUnicorn
The two main characteristics of this solution is
_The (Microsoft) "W" version of a Win32 API Function, which most usually is available is used. This usually looks similar to the AASI version, but with a trailing W in place of the trailing A , pseudo like MyWin32APIFunctionW (This is often referred to under imprecise approximate mismomer convention as the Unicode version when distinguishing or in comparison speaking using the full historical mismomer reference "ANSI" or ANSI for the "A" version
_ Any string parameters given by As String are replaced with As Long or As LongPtr
Half way house WUnicorn (HWHWU)
This is the Full WUnicorn version but with any string parameters As String
** Termsinology Ratified by order of
Alan
Hof
Xmas / New Year, 2024 2025
1 Attachment(s)
Unicode (WUnicorn) and (Microsoft) "ANSI" (AASI)
Chr ( x ) , x = 0 to 255 and the common low end AASI character tables.
(Window Code pages)
aka Interactions with AASI and WUnicorns at the bottom bit
The previous posts have shown and discussed that we have these two things to consider, AASI and WUnicorns.
Further more, the cross over point and associated interactions with the two at the bottom we will go on to see are not so well defined and a bit blurred. Here we will discuss some background issues to help make things clearer later.
The term "Unicode character" is quite a correct and well defined term, at least to some extent, since Unicode can be used as a term related to a single unique list of characters: A single unique list of characters that is pretty dammed massive already and likely to get bigger as long as man exists on this planet. We are mainly concerning ourselves with the 0 – 65535 range
OK so that is WUnicorn, as I call it. On the other AASI end, as we have discussed many times, a term such as "ANSI character" is a slightly more vague historical mismomer thing: It does give some indication of what we are likely to be talking about, and that may in end effect be a character list involving characters mostly "down the bottom" around the 0 – 255 Unicode character list area, but it might have the odd few characters in the Unicode character list up to about 400, and similarly may be missing a few under 256 in the Unicode character list.
Let's go through that in a bit more detail
Get your bottom end Chr(x) List
First things first. Make sure you know what characters your current computer has in its AASI character list. It will be similar to ChrW(x) , with x = 0 to 255, but unlikely exactly the same and this might cause awkward issues later if you are unaware of the differences, so it is a good idea to get this list at an early stage. Remember also that it may be slightly different list for different computers.
The simplest way, Rem 1 in the coding below, is to get this list is to simply loop for x = 0 to 255 and paste out Chr(x) as in the next simply coding. While we are at it we will get our windows code page number then go on to check our list with any published table for that windows code page number: Remember you may get slightly different results on your computer
In Rem 2 I obtain the windows code page. So far I have seen 1250 and 1252. I researched the internet using those numbers and obtained the appropriate lists which amongst other things are included the table examples below
Code:
Option Explicit ' https://eileenslounge.com/viewtopic.php?p=324440#p324440
Private Declare Function GetACP Lib "kernel32" () As Long
Sub GetMyBottomEndAASIs() ' https://www.excelfox.com/forum/showthread.php/2824-Tests-Copying-Pasting-API-Cliipboard-issues-and-Rough-notes-on-Advanced-API-stuff?p=24947&viewfull=1#post24947
Rem 1 make my own list
Dim Ex As Long
For Ex = 0 To 255
Let Range("H" & Ex + 4 & "") = Ex
Let Range("I" & Ex + 4 & "") = Chr(Ex)
Next Ex
Let Rows("14:14").WrapText = False: Debug.Print Asc(Range("I" & 14 & "").Value) ' This line is a small bodge to remove any automatic wrap text feature that may adjust the cell height seen when it recieves the line feed character ( Chr(10) vbLf ) : The Debug.Print is a quick check to make sure we still have the character there
Rem 2 get the windows code page number ( ' https://eileenslounge.com/viewtopic.php?p=324443#p324443 )
Dim WindowsCodePageNumber As Long
Let WindowsCodePageNumber = GetACP()
Debug.Print WindowsCodePageNumber ' so far I have seen 1250 and the most common one which is 1252
End Sub
Here I am just collecting a few lists of Chr(x) , with x from 0 to 255 , and typically alongside I will have a code page list. The significance has been touched on above, and will be discussed further later. Any reference names are for me to tie up list to some of my computers
' https://i.postimg.cc/Kj0YvV3Z/Windows-CPage-KB1252.jpg
' https://i.postimg.cc/BZVgVzkc/Window...ungary1250.jpg
Code:
Central Europe (my Hungary SSD2) More typical (Western Europe)
x Chr(x) Win1250 MS-DOS852 MS-DOS852 x Chr(x) Win1252 MS-DOS850
0 ␀ 0 NUL
1 ␁ 1 SOH
2 ␂ 2 STX
3 ␃ 3 ETX
4 ␄ 4 EOT
5 ␅ 5 ENQ
6 ␆ 6 ACK
7 ␇ 7 BEL
8 ␈ 8 BS
9 ␉ 9 HT
10 ␊ 10 LF
11 ␋ 11 VT
12 ␌ 12 FF
13 ␍ 13 CR
14 ␎ 14 SO
15 ␏ 15 SI
16 ␐ 16 DLE
17 ␑ 17 DC1
18 ␒ 18 DC2
19 ␓ 19 DC3
20 ␔ 20 DC4
21 ␕ 21 NAK
22 ␖ 22 SYN
23 ␗ 23 ETB
24 ␘ 24 CAN
25 ␙ 25 EM
26 ␚ 26 SUB
27 ␛ 27 ESC
28 ␜ 28 FS
29 ␝ 29 GS
30 ␞ 30 RS
31 ¬ ␟ 31 ¬ US
32 ␠ 32 SP
33 ! ! ! 33 ! ! !
34 " " " 34 " " "
35 # # # 35 # # #
36 $ $ $ 36 $ $ $
37 % % % 37 % % %
38 & & & 38 & & &
39 ' \' 39 ' \
40 ( ( ( 40 ( ( (
41 ) ) ) 41 ) ) )
42 * * * 42 * * *
43 + + + 43 + + +
44 , , , 44 , , ,
45 - - - 45 - - -
46 . . . 46 . . .
47 / / / 47 / / /
48 0 0 0 48 0 0 0
49 1 1 1 49 1 1 1
50 2 2 2 50 2 2 2
51 3 3 3 51 3 3 3
52 4 4 4 52 4 4 4
53 5 5 5 53 5 5 5
54 6 6 6 54 6 6 6
55 7 7 7 55 7 7 7
56 8 8 8 56 8 8 8
57 9 9 9 57 9 9 9
58 : : : 58 : : :
59 ; ; ; 59 ; ; ;
60 < < < 60 < < <
61 = = = 61 = = =
62 > > > 62 > > >
63 ? ? ? 63 ? ? ?
64 @ @ @ 64 @ @ @
65 A A A 65 A A A
66 B B B 66 B B B
67 C C C 67 C C C
68 D D D 68 D D D
69 E E E 69 E E E
70 F F F 70 F F F
71 G G G 71 G G G
72 H H H 72 H H H
73 I I I 73 I I I
74 J J J 74 J J J
75 K K K 75 K K K
76 L L L 76 L L L
77 M M M 77 M M M
78 N N N 78 N N N
79 O O O 79 O O O
80 P P P 80 P P P
81 Q Q Q 81 Q Q Q
82 R R R 82 R R R
83 S S S 83 S S S
84 T T T 84 T T T
85 U U U 85 U U U
86 V V V 86 V V V
87 W W W 87 W W W
88 X X X 88 X X X
89 Y Y Y 89 Y Y Y
90 Z Z Z 90 Z Z Z
91 [ [ [ 91 [ [ [
92 \ \ \ 92 \ \ \
93 ] ] ] 93 ] ] ]
94 ^ ^ ^ 94 ^ ^ ^
95 _ _ _ 95 _ _ _
96 ` ` ` 96 ` ` `
97 a a a 97 a a a
98 b b b 98 b b b
99 c c c 99 c c c
100 d d d 100 d d d
101 e e e 101 e e e
102 f f f 102 f f f
103 g g g 103 g g g
104 h h h 104 h h h
105 i i i 105 i i i
106 j j j 106 j j j
107 k k k 107 k k k
108 l l l 108 l l l
109 m m m 109 m m m
110 n n n 110 n n n
111 o o o 111 o o o
112 p p p 112 p p p
113 q q q 113 q q q
114 r r r 114 r r r
115 s s s 115 s s s
116 t t t 116 t t t
117 u u u 117 u u u
118 v v v 118 v v v
119 w w w 119 w w w
120 x x x 120 x x x
121 y y y 121 y y y
122 z z z 122 z z z
123 { { { 123 { { {
124 | | | 124 | | |
125 } } } 125 } } }
126 ~ ~ ~ 126 ~ ~ ~
127 ␡ 127 DEL
128 € € Ç € 128 € € Ç
129 ü 129 ü
130 ‚ ‚ é ‚ 130 ‚ ‚ é
131 â ƒ 131 ƒ ƒ â
132 „ „ ä „ 132 „ „ ä
133 … … ů … 133 … … à
134 † † ć † 134 † † å
135 ‡ ‡ ç ‡ 135 ‡ ‡ ç
136 ł ˆ 136 ˆ ˆ ê
137 ‰ ‰ ë ‰ 137 ‰ ‰ ë
138 Š Š Ő Š 138 Š Š è
139 ‹ ‹ ő ‹ 139 ‹ ‹ ï
140 Ś Ś î Œ 140 Œ Œ î
141 Ť Ť Ź 141 ì
142 Ž Ž Ä Ž 142 Ž Ž Ä
143 Ź Ź Ć 143 Å
144 É 144 É
145 ‘ ‘ Ĺ ‘ 145 ‘ ‘ æ
146 ’ ’ ĺ ’ 146 ’ ’ Æ
147 “ “ ô “ 147 “ “ ô
148 ” ” ö ” 148 ” ” ö
149 • • Ľ • 149 • • ò
150 – – ľ – 150 – – û
151 — — Ś — 151 — — ù
152 ś ˜ 152 ˜ ˜ ÿ
153 ™ ™ Ö ™ 153 ™ ™ Ö
154 š š Ü š 154 š š Ü
155 › › Ť › 155 › › ø
156 ś ś ť œ 156 œ œ £
157 ť ť Ł 157 Ø
158 ž ž × ž 158 ž ž ×
159 ź ź č Ÿ 159 Ÿ Ÿ ƒ
160 á 160 NBSP á
161 ˇ ˇ í ¡ 161 ¡ ¡ í
162 ˘ ˘ ó ¢ 162 ¢ ¢ ó
163 Ł Ł ú £ 163 £ £ ú
164 ¤ ¤ Ą ¤ 164 ¤ ¤ ñ
165 Ą Ą ą ¥ 165 ¥ ¥ Ñ
166 ¦ ¦ Ž ¦ 166 ¦ ¦ ª
167 § § ž § 167 § § º
168 ¨ ¨ Ę ¨ 168 ¨ ¨ ¿
169 © © ę © 169 © © ®
170 Ş Ş ¬ ª 170 ª ª ¬
171 « « ź « 171 « « ½
172 ¬ ¬ Č ¬ 172 ¬ ¬ ¼
173 ¬ ¬ ş ¬ 173 ¬ ¬SHY ¡
174 ® ® « ® 174 ® ® «
175 Ż Ż » ¯ 175 ¯ ¯ »
176 ° ° ░ ° 176 ° ° ░
177 ± ± ▒ ± 177 ± ± ▒
178 ˛ ˛ ▓ ² 178 ² ² ▓
179 ł ł │ ³ 179 ³ ³ │
180 ´ ´ ┤ ´ 180 ´ ´ ┤
181 µ µ Á µ 181 µ µ Á
182 ¶ ¶ Â ¶ 182 ¶ ¶ Â
183 • • Ě • 183 • • À
184 ¸ ¸ Ş ¸ 184 ¸ ¸ ©
185 ą ą ╣ ¹ 185 ¹ ¹ ╣
186 ş ş ║ º 186 º º ║
187 » » ╗ » 187 » » ╗
188 Ľ Ľ ╝ ¼ 188 ¼ ¼ ╝
189 ˝ ˝ Ż ½ 189 ½ ½ ¢
190 ľ ľ ż ¾ 190 ¾ ¾ ¥
191 ż ż ┐ ¿ 191 ¿ ¿ ┐
192 Ŕ Ŕ └ À 192 À À └
193 Á Á ┴ Á 193 Á Á ┴
194 Â Â ┬ Â 194 Â Â ┬
195 Ă Ă ├ Ã 195 Ã Ã ├
196 Ä Ä ─ Ä 196 Ä Ä ─
197 Ĺ Ĺ ┼ Å 197 Å Å ┼
198 Ć Ć Ă Æ 198 Æ Æ ã
199 Ç Ç ă Ç 199 Ç Ç Ã
200 Č Č ╚ È 200 È È ╚
201 É É ╔ É 201 É É ╔
202 Ę Ę ╩ Ê 202 Ê Ê ╩
203 Ë Ë ╦ Ë 203 Ë Ë ╦
204 Ě Ě ╠ Ì 204 Ì Ì ╠
205 Í Í ═ Í 205 Í Í ═
206 Î Î ╬ Î 206 Î Î ╬
207 Ď Ď ¤ Ï 207 Ï Ï ¤
208 Đ Đ đ Ð 208 Ð Ð ð
209 Ń Ń Đ Ñ 209 Ñ Ñ Ð
210 Ň Ň Ď Ò 210 Ò Ò Ê
211 Ó Ó Ë Ó 211 Ó Ó Ë
212 Ô Ô ď Ô 212 Ô Ô È
213 Ő Ő Ň Õ 213 Õ Õ ı
214 Ö Ö Í Ö 214 Ö Ö Í
215 × × Î × 215 × × Î
216 Ř Ř ě Ø 216 Ø Ø Ï
217 Ů Ů ┘ Ù 217 Ù Ù ┘
218 Ú Ú ┌ Ú 218 Ú Ú ┌
219 Ű Ű █ Û 219 Û Û █
220 Ü Ü ▄ Ü 220 Ü Ü ▄
221 Ý Ý Ţ Ý 221 Ý Ý ¦
222 Ţ Ţ Ů Þ 222 Þ Þ Ì
223 ß ß ▀ ß 223 ß ß ▀
224 ŕ ŕ Ó à 224 à à Ó
225 á á ß á 225 á á ß
226 â â Ô â 226 â â Ô
227 ă ă Ń ã 227 ã ã Ò
228 ä ä ń ä 228 ä ä õ
229 ĺ ĺ ň å 229 å å Õ
230 ć ć Š æ 230 æ æ µ
231 ç ç š ç 231 ç ç þ
232 č č Ŕ è 232 è è Þ
233 é é Ú é 233 é é Ú
234 ę ę ŕ ê 234 ê ê Û
235 ë ë Ű ë 235 ë ë Ù
236 ě ě ý ì 236 ì ì ý
237 í í Ý í 237 í í Ý
238 î î ţ î 238 î î ¯
239 ď ď ´ ï 239 ï ï ´
240 đ đ ¬ ð 240 ð ð ¬
241 ń ń ˝ ñ 241 ñ ñ ±
242 ň ň ˛ ò 242 ò ò ‗
243 ó ó ˇ ó 243 ó ó ¾
244 ô ô ˘ ô 244 ô ô ¶
245 ő ő § õ 245 õ õ §
246 ö ö ÷ ö 246 ö ö ÷
247 ÷ ÷ ¸ ÷ 247 ÷ ÷ ¸
248 ř ř ° ø 248 ø ø °
249 ů ů ¨ ù 249 ù ù ¨
250 ú ú ˙ ú 250 ú ú •
251 ű ű ű û 251 û û ¹
252 ü ü Ř ü 252 ü ü ³
253 ý ý ř ý 253 ý ý ²
254 ţ ţ ■ þ 254 þ þ ■
255 ˙ ˙ ÿ 255 ÿ ÿ
https://i.postimg.cc/NFH21SfQ/Window...OS-852-850.jpg
https://i.postimg.cc/yNJJ4x2L/Window...OS-852-850.jpg
https://i.postimg.cc/pV4SQ6J4/Windows-1250-1252.jpg
https://i.postimg.cc/B6y1P43h/Windows-1250-1252.jpg
https://i.postimg.cc/Hj1c3zVX/Windows-1250-1252.jpg
https://i.postimg.cc/44mM9gVp/Windows-1250-1252.jpg
ISO-8859-1 :- The main difference to Windows 1252 seems to be that 128 to 159 are not used in ISO-8859-1