DetailPage-MSS-KB

Base de connaissances

Numéro d'article: 272138 - Dernière mise à jour: jeudi 11 mai 2006 - Version: 3.0

 

Sommaire

Symptômes

Certaines fonctions, telles que la fonction Microsoft Visual Basic (VB) et Visual Basic Script (VBScript) AscW, peuvent renvoyer un nombre négatif lorsque vous demandez la valeur Unicode d'un caractère non-Latin (comme Hanzi chinois, kanji japonais ou coréen hangûl). Lorsque vous utilisez ce nombre négatif comme une référence d'entité HTML (& #nnnn, où nnnn est soit un numéro de Unicode hexadécimal ou décimal), vous verrez la référence d'entité en tant que texte littéral, au lieu du caractère Latin non correspondant.

Cause

Les numéros de Unicode occupent un 16 bits de positif compris entre 0 et 65535 (0xFFFF) et ne peut pas être négatifs.

Résolution

AscW retourne un nombre négatif, renvoie que les deux complète la forme de ce nombre. Pour convertir les deux complète notation en notation binaire normale, ajouter 0xfff au résultat de retour. Pour obtenir un exemple, consultez la section «Informations complémentaires».

Plus d'informations

Procédure pour reproduire le problème

  1. Enregistrer le code HTML suivant dans un fichier nommé 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. Ouvrir ce fichier dans Internet Explorer. La deuxième référence de caractère s'affiche en tant que texte brut et non le caractères japonais "go".
Pour contourner ce problème, modifiez le bloc de script à la suivante :
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
				

Références

Pour plus d'informations sur le développement de solutions Web de Microsoft Internet Explorer, reportez-vous aux sites Web de Microsoft aux adresses suivantes :
http://msdn.microsoft.com/ie/ (http://msdn.microsoft.com/ie/)

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

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Internet Explorer 4.0 Édition 128 bits
  • 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
Mots-clés : 
kbmt kbdhtml kbintl kbintldev kbprb kbunicode KB272138 KbMtfr
Traduction automatiqueTraduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 272138  (http://support.microsoft.com/kb/272138/en-us/ )
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Article KB retiré.Exclusion de responsabilité concernant les contenus obsolètes dans la Base de connaissances
Cet article concerne des produits pour lesquels Microsoft n'offre plus de support. Il est par conséquent fourni « en l'état » et ne sera plus mis à jour.
Partager
Options de support supplémentaire
Forums du support Microsoft Community
Nous contacter directement
Trouver un partenaire Microsoft Certified Partner
Microsoft Store