Primeiro, depois fale sem sentido^_^
A cópia do código é a seguinte:
/**
* Vire personagens de largura integral
*/
função Todbc (str) {
var resultado = "";
var len = str.Length;
for (var i = 0; i <len; i ++)
{
var ccode = str.charcodeat (i);
// A diferença entre o total e o meio-ângulo (exceto o espaço): 65248 (decimal)
ccode = (ccode> = 0x0021 && ccode <= 0x007e)? (ccode + 65248): ccode;
// espaços de processamento
ccode = (ccode == 0x0020)? 0x03000: ccode;
resultado += string.fromCharcode (ccode);
}
resultado de retorno;
}
/**
* Vire os caracteres de meia largura
*/
função tosbc (str) {
var resultado = "";
var len = str.Length;
for (var i = 0; i <len; i ++)
{
var ccode = str.charcodeat (i);
// A diferença entre o total e o meio-ângulo (exceto o espaço): 65248 (decimal)
ccode = (ccode> = 0xff01 && ccode <= 0xff5e)? (ccode - 65248): ccode;
// espaços de processamento
ccode = (ccode == 0x03000)? 0x0020: ccode;
resultado += string.fromCharcode (ccode);
}
resultado de retorno;
}
Pontos de conhecimento
Ao comparar caracteres de meia largura com caracteres de largura completa (caracteres ASCII), podemos descobrir que o alcance de caracteres ASCII com caracteres de largura total e meia largura é: 0x20 ~ 0x7e.
por exemplo:
A diferença entre os símbolos de meia largura e largura
#0x00230xff030xfee0
? 0x003f0xff1f0xfee0
Espaço 0x00200x0300xx2fe0
Exceto espaços, em outros caracteres, o todo e a meia largura são diferentes: 0xffe0
Portanto, na conversão do caractere de largura total e meia largura, é necessário um processamento especial de espaços.
Por exemplo:
Largura completa = meia largura + 0xfee0
Meia largura = largura completa-0xffe0