После изучения кодирования мы узнали взаимосвязь между кодированием GB2312 и кодом местоположения. После попытки мы получили эту программу.
Поиск, никто, казалось, не писал, поэтому я разместил здесь.
Оригинальный первый релиз:
http://bbs.blueidea.com
http://mytju.com/classcode/
Перепечатайте в любое время, используйте его в любое время.
1. Краткое описание
(1) Определение стандарта GB2312 на самом деле является кодом местоположения.
Всего 94 строк, 94 столбца, строки являются кодами площади, а столбцы - это битовые номера.
Например, код области символа «ах» составляет 16, а номер бита - 01, а код его позиции - 1601.
(2) Каждый символ состоит из кода площади + бита, что составляет два байта в общей сложности.
Каждый байт составляет 01-94, что противоречит контроллеру связи 0-31.
Поэтому добавьте код области и бит номер 32 соответственно, чтобы избежать конфликтов.
(3) Из вышесказанного каждый байт составляет 33-126, что противоречит кодированию ASCII 0-127,
Так что поместите самое высокое положение до 1, то есть добавить 128, чтобы избежать конфликтов.
Итак, в конце концов, каждый байт составляет 161-254.
2. выполнить
Принцип очень прост, добавить или вычесть.
Я опубликую функцию, которую я выполнил здесь напрямую.
Кода -копия выглядит следующим образом:
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Functionchartoqwm (byvalstr)
Dimshex, Shigh, Slow, Ilow, Ihigh, Sresult
Shex = hex (ASC (Str)) 'Получите кодирование внутреннего кода символа, такого как B0A1, эта кодировка находится в правильном порядке, и нет необходимости обменять высокие и низкие биты.
Shigh = слева (Shex, 2) 'получает кодированный бит, такой как B0.
медленный = справа (Shex, 2) 'Получает низкий кодирующий бит, такой как A1.
«Внутренний диапазон внутреннего кода GB2312 IS & HA1A1-& HFEFE, и каждый байт находится между A1-FE.
ifnot (shigh> = "a1" andghigh <= "fe") тогда
Chartoqwm = ""
Выходная функция
эндиф
ifnot (Slow> = "a1" andslow <= "fe") затем
Chartoqwm = ""
Выходная функция
эндиф
«Код обмена GB использует только 7 бит, а высокая позиция - 1, что является внутренним кодом. В свою очередь, высокая позиция составляет 0, а код подкачки можно получить.
ilow = clng ("& h" & медленно) -128
ihigh = clng ("& h" & shigh) -128
«Код местоположения конфликтует с кодом управления 0-31, поэтому после добавления 32 код обмена-это тот. В свою очередь вычтите 32.
ilow = ilow-32
ihigh = ihigh-32
«Хорошо, код местоположения был получен.
sresult = ""
ifihigh <10then
sresult = sresult & "0" & cstr (ihigh)
еще