SORUN: Negatif tamsayılara Unicode HTML varlık başvuruları gibi çalışmıyor

Makale çevirileri Makale çevirileri
Makale numarası: 272138 - Bu makalenin geçerli olduğu ürünleri görün.
Bu makale arşivlenmiştir. "Olduğu gibi" sunulmaktadır ve bundan sonra güncelleştirilmeyecektir.
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Microsoft Visual Basic (VB) ve Visual Basic komut dosyası (VBScript) AscW işlevi gibi bazı işlevler, negatif bir sayı olmayan Latin karakter (Çince Hanzi Japonca Kanji veya Kore dili Hangul gibi) <a1>Unicode</a1> değerini söylediğinizde döndürebilir. Bu bir eksi sayı bir HTML varlık başvurusu (& # kullandığınızdannnn bir onaltılık veya ondalık Unicode numarası olduğu nnnn,), varlık başvurusu, ilişkili olmayan Latin karakter yerine düz metin olarak görürsünüz.

Neden

Unicode değerler, 16-bit pozitif aralığı 0-65535 (0xFFFF) kaplayacak ve negatif olamaz.

Çözüm

AscW negatif bir sayı biçimi, bu numarayı ikişer tamamlayıcı döndürür. Ikişer gösterimde tamamlayıcı dönüştürmek normal ikili gösterimde, döndürülen sonuç 0xFFF ekleyin. Örneğin, "Daha fazla bilgi" bölümüne bakın.

Daha fazla bilgi

Davranışı yeniden oluşturma adımları

  1. Aşağıdaki HTML kodu TestAscW.htm adlı bir dosyaya kaydedin:
    <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. Bu dosyayı ınternet Explorer'da açın. Ikinci karakter başvurusu olarak ham metni ve Japonca karakter yok "git" olarak görüntülenir...
Bu soruna geçici bir çözüm bulmak için <a0></a0>, komut dosyası öbeği şu şekilde değiştirin:
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
				

Referanslar

Microsoft ınternet Explorer için Web tabanlı çözümler geliştirme hakkında daha fazla bilgi için aşağıdaki Microsoft Web sitelerini ziyaret edin:
http://msdn.microsoft.com/ie/

http://support.microsoft.com/iep

Özellikler

Makale numarası: 272138 - Last Review: 5 Şubat 2014 Çarşamba - Gözden geçirme: 3.0
Bu makaledeki bilginin uygulandığı durum:
  • 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 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
Anahtar Kelimeler: 
kbnosurvey kbarchive kbmt kbdhtml kbintl kbintldev kbprb kbunicode KB272138 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:272138

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