Primero, luego habla tonterías^_^
La copia del código es la siguiente:
/**
* Gire los personajes de todo el ancho
*/
función Todbc (str) {
resultado var = "";
var len = str.length;
para (var i = 0; i <len; i ++)
{
var ccode = str.charcodeat (i);
// La diferencia entre el ángulo completo y medio (excepto el espacio): 65248 (decimal)
ccode = (ccode> = 0x0021 && ccode <= 0x007e)? (ccode + 65248): ccode;
// espacios de procesamiento
ccode = (ccode == 0x0020)? 0x03000: ccode;
resultado += string.FromCharCode (ccode);
}
resultado de retorno;
}
/**
* Convertir los personajes de medio ancho
*/
función tosbc (str) {
resultado var = "";
var len = str.length;
para (var i = 0; i <len; i ++)
{
var ccode = str.charcodeat (i);
// La diferencia entre el ángulo completo y medio (excepto el espacio): 65248 (decimal)
ccode = (ccode> = 0xff01 && ccode <= 0xff5e)? (ccode - 65248): ccode;
// espacios de procesamiento
ccode = (ccode == 0x03000)? 0x0020: ccode;
resultado += string.FromCharCode (ccode);
}
resultado de retorno;
}
Puntos de conocimiento
Al comparar caracteres de medio ancho con caracteres de ancho completo (caracteres ASCII), podemos encontrar que el rango de caracteres ASCII con caracteres de ancho completo y medio ancho es: 0x20 ~ 0x7e.
Por ejemplo:
La diferencia entre los símbolos de medio anchura y de ancho completo
#0x00230xff030xfee0
? 0x003f0xff1f0xfee0
Espacio 0x00200x03000000x2fe0
Excepto los espacios, en otros personajes, todo el ancho de todo el ancho son diferentes: 0xffe0
Por lo tanto, en la conversión de caracteres de ancho completo y medio ancho, se requiere un procesamiento especial de espacios.
Por ejemplo:
Ancho completo = medio ancho + 0xfee0
Medio ancho = ancho completo-0xffe0