![]() |
David Woolley wrote: > > > fxStr sender("Kestas \128\129\130\131\132\133\134\135"); > !!!!!!!! These are not valid octal numbers > ################################ > > Treated as (broken) octal, these are ASCII X, Y, X, Y, Z, [, \, ], Sorry. It's my first program... > and should print. However, I would expect the 8 to terminate the \128, > resulting in a line feed (newline) which might well terminate the string. > Treated as decimal they are invalid in ISO 8859/* and Unicode, and fall > into the C2 control set on most terminals. Valid ISO 8859/1 characters > start at 160 decimal (\240), with non breaking space, which produces no > graphic; the first printing high bit character is \241. > > For clarification, I believe your C++ is equivalent to: > > fxStr sender("Kestas \n8\n9XYZ[\\]"); Now I compiled xmbdfed (something like font viewer...), so I have table with letters and corresponding codes (I use bdftopcf to convert .bdf code to .pcf font). The string now looks like: fxStr sender("Kestas\101\102\103\141\142\143\150\151\152\176\241\242\266"); A B C a b c h i j ~ ? ? ? All letters looks OK up to \176. All others, which have code >176, are skipped (I mark them as ?). I can't understand, where the program cuts out these characters... > > It is *not* usual to have Unix systems with locale's corresponding to IBM > Code Page 437 or 85* and the default code for Linux is ASCII/ ISO 8859/1. > > Slackware linux has a man page for ISO 8859/1. Thank for help Kestas