Всем известно что русские символы нормально не отображаются в консоли. Когда мы пишем:
Code
print("а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я");
То получаем в консоли:
Code
р с т у ф х ╕ ц ч ш щ ъ ы ь э ю я Ё ё Є є Ї ї Ў ў ° ∙ · √ № ¤ ■ * └ ┴ ┬ ├ ─ ┼ и╞ ╟ ╚ ╔ ╩ ╦ ╠ ═ ╬ ╧ ╨ ╤ ╥ ╙ ╘ ╒ ╓ ╫ ╪ ┘ ┌ █ ▄ ▌ ▐ ▀
Есть способ это пофиксить:* :P
Основная:
#define FixConsole(%1) for(new rSt;rSt<strlen(%1);rSt++) if(%1[rSt]>191 && %1[rSt]<240) %1[rSt]-=64; else if(%1[rSt]>239 && %1[rSt]<256) %1[rSt]-=16
Также работает с "Ё" и "ё"
#define FixConsole(%1) for(new rSt;rSt<strlen(%1);rSt++) if(%1[rSt]>191 && %1[rSt]<240) %1[rSt]-=64; else if(%1[rSt]>239 && %1[rSt]<256) %1[rSt]-=16; else if (%1[rSt] == 168 ) %1[rSt]+=72; else if (%1[rSt] == 184) %1[rSt]+=57
Русские символы разделены на 2 группы:
1) 192 - 239 (А - Я, а - п) разница 64
2) 240 - 256 (р - я) разница 16
Например:
Русская "A"
Вводится: 192 (Отображается: "└")
Правильная: 128 (Отображается правильно: "A")
192-128=64
Русская "y"
Вводится: 243 (Отображается: "є")
Правильная: 227 (Отображается правильно: "y")
243-227=16
С использованием FixConsole:
Code
а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
Тестовое предложение:
Автор: [LDT]LuxurY
Источник: www.sa-mp.com
Что в свою очередь взято с gtascript.ruДобавлено (29.07.2008, 15:17)
---------------------------------------------
Alien193, учитесь правельно оформлять пост. Даже если всего этого не видел, то уж автора ОБЯЗАН написать, а не так, что скрипт не мой, а чейто.