PRB: Záporná celá čísla nefungují jako entita HTML odkazy Unicode

Překlady článku Překlady článku
ID článku: 272138 - Produkty, které se vztahují k tomuto článku.
Tento článek byl archivován. Je nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

Některé funkce, jako například funkce AscW skript jazyka (VBScript) a Microsoft Visual Basic (VB) může vrátit záporné číslo při požádat o hodnotu Unicode znaku latinka (například čínské Hanzi Japonská Kanji nebo korejské korejština). Použít záporné číslo jako odkaz na entitu HTML (& #nnnn, kde nnnn je buď šestnáctkové nebo desítkové soustavě Unicode číslo), naleznete v odkazu entity jako literál text namísto odpovídající znak Latin.

Příčina

Čísla Unicode zabírat 16bitové kladné rozsahu od 0 do 65535 (0xFFFF) a nemůže být záporná.

Řešení

Funkce AscW vrátí záporné číslo, vrátí dvou doplňují formuláře číslo. Převést dvou doplňují zápis do normální binární zápis přidat 0xFFF vratky výsledek. Příklad naleznete v části "Další informace".

Další informace

Kroky pro reprodukci chování

  1. Následující kód HTML uložte do souboru s názvem 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. Tento soubor otevřít v aplikaci Internet Explorer. Druhý znak odkaz je zobrazen jako nezpracovaný text a nikoli jako japonské znakové "Přejít"
Chcete-li tento problém vyřešit, změňte blok skriptu následující:
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
				

Odkazy

Další informace o vývoji řešení založených na webu pro aplikaci Microsoft Internet Explorer navštivte následující weby:
http://msdn.microsoft.com/ie/

http://support.microsoft.com/iep

Vlastnosti

ID článku: 272138 - Poslední aktualizace: 23. ledna 2014 - Revize: 3.0
Informace v tomto článku jsou určeny pro produkt:
  • 128bitová verze aplikace Microsoft Internet Explorer 4.0
  • 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
Klíčová slova: 
kbnosurvey kbarchive kbmt kbdhtml kbintl kbintldev kbprb kbunicode KB272138 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:272138

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com