> Вы уверены, что SIM-карта хранит данные именно так?Я читал соотв. доки с etsi.org, так что уверен. Там есть несколько вариантов сохранения записей. Один из них (реально используемый рядом мобильников) - достаточно хитро и разумно компрессованый уникод, позволяющий терять лишь несколько символов относительно однобайтового представления, а не половину, как более лобовая передача уникода (в SMS с этим хуже, например).
> Используется перекодировка, Вы считаете?
Нечто типа компрессии: кодовая страница посылается в начале последовательности, ну и когда надо перейти на иную кодовую страницу (скажем закончили писать на немецком языке и желаем теперь японский). Остальные данные являются смещением в рамках code page и лезут в 1 байт. Такой хитрый маневр позволяет терять
> заставляет SIM хранить что-то в отличном формате???
Нежелание продалбывать половину размера записи.
> Внимание, вопрос! Как происходит переключение кодовых страниц?
Элементарно, ватсон: выделена некая уникальная последовательность, которая указывает в какой кодовой странице будут дальнейшие данные. В простейшем случае она лишь в начале записи (на нее и теряется несколько байтов), остальное - однобайтовые данные указывающие смещение относительно начала базы code page, лезет в 1 байт. Получается нечто типа дельта-компрессии уникода, пользующееся тем фактом что с немецкого на японский переключаются не так уж часто, поэтому полное смещение передавать чаще всего - довольно расточительно.
При таком раскладе русское имя на сим-карте обрубается не в половину записи, а лишь на ~3 символа относительно чисто-английского представления, а не на половину, как могло бы быть.