Как декодировать текстовую строку, закодированную в транспортных потоках ISDB (ARIB)? Некоторая техника кодирования указана в главе 7 части 2 (кодирование монофонического носителя) спецификации ARIB STD-B24 версии 5.2 (том 1). Но я не уверен, отличается ли эта кодировка от других стандартных японских технологий кодирования символов, таких как EUC-JP, ISO-2022-JP, JIS X208 и т. Д. Каково это стандартное название кодирования?
Если я знаю имя кодировки (кодовую страницу), используемое в потоках ISDB, я могу использовать сторонние библиотеки, такие как ICU, следующим образом.
UConverter * ucnv_open (const char * converterName, UErrorCode * err)
conv = ucnv_open ("shift_jis", & status);
len = ucnv_toUChars (conv, target, 100, source, strlen (source), & status);
ucnv_close (ко);
Я также пытался самостоятельно декодировать строку ARIB, взятую из транспортного потока ISDB, но мне это не удалось, поскольку я столкнулся с несколькими проблемами, которые мне не ясны.
Есть 4 графических набора G0, G1, G2 и G3. Я понял, что начальные значения наборов
G0: набор системы кандзи
G1: буквенно-цифровой набор
G2: набор хирагана
G3: набор макросов
Можно ли время от времени изменять значения G0, G1, G2 и G3 или они остаются фиксированными?
Что это за набор макросов?
Во время декодирования существует две концепции: «Вызов элементов кода» и «Обозначение графических наборов». Как использовать это из escape-кодов? Например, я попытался декодировать следующую строку, взятую из потока:
1b 7c c1 e3 f3 cd eb 26 41 1b 7d fe 4e 78 30 26 37 6b 3a 27 ce 4b 21 42 27 0e 28 1b 7c eb f9 eb 29 0f 21 21 0e 23 30 38 1b 24 3b 0f 7a 6a 7a 56 7а 59
Как получить значения GL и GR, скажем, для приведенной выше строки и использовать ли 2 байта или 1 байт на символ? Будет очень полезно, если кто-нибудь сможет дать подсказку для декодирования вышеуказанной строки.