بعد دراسة الترميز ، تعلمنا العلاقة بين رمز الترميز ورمز الموقع GB2312. بعد المحاولة ، حصلنا على هذا البرنامج.
البحث ، لا أحد يبدو أنه يكتبها ، لذلك قمت بنشرها هنا.
الإصدار الأول الأصلي:
http://bbs.blueidea.com
http://mytju.com/classcode/
إعادة طبع في أي وقت ، استخدمه في أي وقت.
1. وصف موجز
(1) تعريف معيار GB2312 هو في الواقع رمز الموقع.
هناك 94 صفًا في المجموع ، و 94 عمودًا ، والصفوف عبارة عن رموز المنطقة ، والأعمدة هي أرقام بت.
على سبيل المثال ، رمز المنطقة للشخصية "AH" هو 16 ورقم البت هو 01 ، ورمز الموضع الخاص به هو 1601.
(2) يتكون كل حرف من رمز المنطقة + رقم بت ، وهو ما يمثل بايتتين في المجموع.
كل بايت هو 01-94 ، والذي يتعارض مع وحدة التحكم في الاتصال 0-31.
لذلك ، أضف رمز المنطقة ورقم البت 32 على التوالي لتجنب النزاعات.
(3) من ما سبق ، كل بايت هو 33-126 ، والذي يتعارض مع ASCII ترميز 0-127 ،
لذا ضع أعلى مستوى إلى 1 ، أي إضافة 128 لتجنب النزاعات.
لذلك ، في النهاية ، كل بايت هو 161-254.
2. إنجاز
المبدأ بسيط للغاية ، إضافة أو طرح.
سأقوم بنشر الوظيفة التي أكملتها هنا مباشرة.
نسخة الكود كما يلي:
'----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
FunctionChartoQwm (Byvalsstr)
Dimshex ، أعشق ، بطيئة ، ilow ، ihigh ، sresult
SEX = HEX (ASC (STR)) "احصل على ترميز الكود الداخلي للشخصية ، مثل B0A1 ، هذا الترميز في الترتيب الصحيح وليس هناك حاجة لتبادل أجزاء عالية ومنخفضة.
عرقلة = اليسار (shex ، 2) 'يحصل على البت العالي المشفر ، مثل B0.
بطيء = يمين (Shex ، 2) 'يحصل على الترميز المنخفض ، مثل A1.
"GB2312 Code Range IS & HA1A1-& HFEFE ، وكل بايت بين A1-FE.
ifnot (HIST> = "A1" و SHIGHT <= "fe") ثم
chartoqwm = ""
exitfunction
Endif
ifnot (Slow> = "a1" andslow <= "fe") ثم
chartoqwm = ""
exitfunction
Endif
يستخدم رمز تبادل GB 7 بتات فقط ، والوضع العالي هو 1 ، وهو الرمز الداخلي. بدوره ، يكون الوضع العالي هو 0 ، ويمكن الحصول على رمز المبادلة.
ilow = clng ("& h" & slow) -128
ihigh = clng ("& h" & high) -128
"يتناقض رمز الموقع مع رمز التحكم 0-31 ، لذلك بعد إضافة 32 ، فإن رمز التبادل هو. بدوره ، طرح 32.
ilow = ilow-32
ihigh = ihigh-32
"حسنًا ، تم الحصول على رمز الموقع.
sresult = ""
ifihigh <10then
Sresult = Sresult & "0" & CSTR (ihigh)
آخر