Сообщение от riku.kh3
Каким образом игра вообще может знать о существовании русской 1251 не представляю.
|
Сообщение от riku.kh3
Опять же, понятия не имею как это все устроить, и как модуль шрифтов это все обрабатывает.
|
Сообщение от riku.kh3
Пардон, я думал 1251 кодировка тоже однобайтная, с ней не приходилось просто никогда работать. Никогда не видел чтобы с shiftjis кодировкой такое срабатывало.
|
Эмм, по-моему ты совсем в этом ничего не понимаешь

Или, скорее всего, ты себе сам всё усложняешь тогда, когда всё на самом деле очень просто.
Кодировка - это всего-лишь набор символов и всё! Просто в каждой кодировке все буквы пронумерованы по разному. Взять чисто однобайтную кодировку, то там количество кодов не превышает 0xFF, что получается, если перевести в десятиметричную систему 256 символов.
А как же добавить 257-ой символ?
Вооот! Тут-то 0xFG уже не проканает, потому что в 16-ричной системе максимальное число F и уже нету G ))) ну ты сам знаешь.
Поэтому, чтобы поместить в таблицу 257-ой символ, приходится считать дальше по правилам: 256 = 0xFF, 257 = 0x0100, а 65535 = 0xFFFF.
Вот тебе и всё правило кодировок 1-байтных или 2-байтных.
Поэтому секрет 2-байтных кодировок в том, что в ней присутствует и 1-байтная кодировка

потому что элементарно подсчёт символов в любой кодировке начинается с нуля, а не с центра вселенной.
Ты же яйца в корзине, если их там 100 штук, начинаешь считать всё равно с 1 единицы, а не с 50-ти )))
Кодировки между собой отличаются только количеством символов и соответственно их порядковым номером в 16-ричной системе.
Если ты хочешь писать в UTF-8, то и символы русского алфавита нужно подсунуть в её диапазон в шрифте.
Кстати, в Shift-JIS я вижу, что русские символы как раз дублируются в диапазоне UTF-8 (0401 - 0451). Таким образом, можно тупо сохранять текст в UTF-8 и шрифт Shift-JIS будет его отображать.