DetailPage-MSS-KB

Base de Dados de Conhecimento

Artigo: 272138 - Última revisão: quinta-feira, 11 de Maio de 2006 - Revisão: 3.0

 

Nesta página

Sintomas

Algumas funções, como a função do Microsoft Visual Basic (VB) e de script do Visual Basic (VBScript) AscW , podem devolver um número negativo quando pedir o valor Unicode de um carácter não-Latim (tal como Hanzi chinês, japonês Kanji ou Hangul coreano). Quando utiliza este número negativo como uma referência de entidade HTML (& # nnnn , onde nnnn é um hexadecimal ou decimal Unicode número), consulte a referência de entidade como texto literal, em vez do carácter de não-Latim 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 devolve um número negativo, devolve que os aos pares complementam a forma desse número. Para converter aos pares complementam notação em notação binária normal, adicione 0xFFF o resultado de devolução. Por exemplo, consulte a secção "Mais informação".

Mais Informação

Passos para reproduzir o comportamento

  1. Guarde o seguinte código HTML num ficheiro denominado 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 ficheiro no Internet Explorer. A segunda referência de carácter é apresentada como texto simples e não como o carácter japonês "ir".
Para contornar este 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 = sAscVal
end function

sub 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 Web sites da Microsoft:
http://msdn.microsoft.com/ie/ (http://msdn.microsoft.com/ie/)

http://support.microsoft.com/iep (http://support.microsoft.com/iep)

A informação contida neste artigo aplica-se a:
  • Microsoft Internet Explorer 4.0 128-Bit Edition
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 4.01 Service Pack 1
  • Microsoft Internet Explorer 5.0
  • Microsoft Internet Explorer 5.01
  • Microsoft Internet Explorer (Programming) 5.01 SP1
  • Microsoft Internet Explorer 5.5
Palavras-chave: 
kbmt kbdhtml kbintl kbintldev kbprb kbunicode KB272138 KbMtpt
Tradução automáticaTradução automática
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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 272138  (http://support.microsoft.com/kb/272138/en-us/ )
Artigo KB retiradoExclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.
Partilhar
Opções de suporte adicionais
Fóruns de Suporte da Comunidade Microsoft
Contacte-nos directamente
Encontre um parceiro certificado Microsoft
Loja Microsoft