أولا ، ثم تحدث هراء^_^
نسخة الكود كما يلي:
/**
* تحويل الأحرف الكاملة العرض
*/
وظيفة todbc (str) {
var result = "" ؛
var len = str.length ؛
لـ (var i = 0 ؛ i <len ؛ i ++)
{
var ccode = str.charcodeat (i) ؛
// الفرق بين الزاوية الكاملة والنصف (باستثناء الفضاء): 65248 (عشري)
ccode = (ccode> = 0x0021 && ccode <= 0x007e)؟ (ccode + 65248): ccode ؛
// مساحات المعالجة
ccode = (ccode == 0x0020)؟ 0x03000: ccode ؛
النتيجة += string.fromcharcode (ccode) ؛
}
نتيجة العودة
}
/**
* اقلب أحرف نصف العرض
*/
وظيفة tosbc (str) {
var result = "" ؛
var len = str.length ؛
لـ (var i = 0 ؛ i <len ؛ i ++)
{
var ccode = str.charcodeat (i) ؛
// الفرق بين الزاوية الكاملة والنصف (باستثناء الفضاء): 65248 (عشري)
ccode = (ccode> = 0xff01 && ccode <= 0xff5e)؟ (ccode - 65248): ccode ؛
// مساحات المعالجة
ccode = (ccode == 0x03000)؟ 0x0020: ccode ؛
النتيجة += string.fromcharcode (ccode) ؛
}
نتيجة العودة
}
نقاط المعرفة
من خلال مقارنة أحرف نصف عرض مع أحرف كاملة العرض (أحرف ASCII) ، يمكننا أن نجد أن نطاق أحرف ASCII مع أحرف كاملة العرض ونصف العرض هو: 0x20 ~ 0x7E.
على سبيل المثال:
الفرق بين الرموز نصف العرض والكامل
#0x00230xff030xfee0
؟ 0x003F0XFF1F0XFEE0
الفضاء 0x00200x030000x2fe0
باستثناء المساحات ، في شخصيات أخرى ، يختلف العرض الكامل والنصف: 0xffe0
لذلك ، في تحويل شخصية العرض الكامل ونصف العرض ، يلزم معالجة خاصة للمساحات.
على سبيل المثال:
عرض كامل = نصف عرض + 0xFEE0
نصف عرض = عرض كامل-0xffe0