Entrar

PROBLEMA: Números inteiros negativos não funcionam como Unicode referências de entidade HTML

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

272138
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sintomas
Algumas funções, como a função de script do Visual Basic (VBScript) AscW e Microsoft Visual Basic (VB), podem retornar um número negativo quando você solicitar o valor Unicode de um caractere não-latino (como Hanzi chinês, japonês kanji ou Hangul coreano). Quando você usa esse número negativo como uma referência de entidade HTML (& # nnnn , onde nnnn é um decimal ou hexadecimal Unicode número), você vê a referência de entidade como texto literal, em vez do caractere não-latino correspondente.
Causa
Números de Unicode ocupam um intervalo de positivo de 16 bits de 0 a 65535 (0xFFFF) e não podem ser negativos.
Resolução
Quando AscW retornará um número negativo, ela retorna que os pares complementam forma desse número. Para converter os pares complementam notação em notação binária normal, adicionar 0xFFF o resultado de retorno. Para obter um exemplo, consulte a seção "Mais informações".
Mais Informações

Etapas para reproduzir o problema

  1. Salve o seguinte código HTML em um arquivo chamado TestAscW.htm:
    <HTML><HEAD><TITLE>PRB: Negative Integers Do Not Work as Unicode HTML Entity  References</TITLE></HEAD><SCRIPT language="VBScript">// The character used below is the Japanese character "go" (8A9E in //Unicode).sub load()	div1.innerHTML = "Actual character is &#35486; & AscW output is &#" & AscW(ChrW(35486))end sub</SCRIPT><BODY language="VBScript" onload="load()"><DIV id="div1"></DIV></BODY></HTML>					
  2. Abra este arquivo no Internet Explorer. A segunda referência de caractere é exibida como texto bruto e não como o caractere japonês "go".
Para contornar esse problema, altere o bloco de script para o seguinte:
function DecodeAscW(sOutput) 	sAscVal = AscW(sOutput) 	If sAscVal < 0 Then 			sAscVal = 65536 + sAscVal 	End If	DecodeAscW = sAscValend functionsub load()	div1.innerHTML = "Actual character is &#35486; AscW output is &#" &  DecodeAscW(ChrW(35486))end sub				
Referências
Para obter mais informações sobre como desenvolver soluções baseadas na Web para o Microsoft Internet Explorer, visite os seguintes sites:
AscW ChrW Unicode

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 272138 - Última Revisão: 10/21/2013 00:51:33 - Revisão: 3.0

  • Microsoft Internet Explorer 4.0 Edição de 128 Bits
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 4.01 Service Pack 1
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 5.0
  • Microsoft Internet Explorer 5.01
  • Microsoft Internet Explorer (Programming) 5.01 SP1
  • Microsoft Internet Explorer 5.5
  • kbnosurvey kbarchive kbmt kbdhtml kbintl kbintldev kbprb kbunicode KB272138 KbMtpt
Comentários