Newsgroup: it.comp.lang.javascript
Titolo: scrittura caratteri Unicode

Salve.
per scrivere un carattere Unicode, basta premettere \u a una stringa
esadecimale di 4 cifre, il codice Unicode del carattere, un numero da 0 a
65535. Fin qui tutto ok- premetto che sto lavorando su IE 5.5
document.write('\u01AF');
tuttavia, se compongo la suddetta stringa dinamicamente, nisba. Non c'è modo
di scrivere i caratteri. Non viene visualizzato alcun errore, ma non viene
scritto nulla. Mi sapete dire cosa c'è di sbagliato in questo script?
   var
hex=['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'];
   function hexValue(n)
   {  var s='';
      var t='';
      while (n>=1)
      {  s=hex[n%16]+s;
          n=Math.floor(n/16);
      }
      return s;
   }
   function toUnicode(n)
   {  s=new String(hexValue(n));
      while (s.length<4)
         s='0'+s;
      return '\u'+s;
/** ho provato anche '\\u'+s ma così viene scritto letteralmente
   * \u0090 anziché il carattere Unicode voluto
   */
   }
   for (var i=144; i<145; i++)
   {  document.write(toUnicode(i));
   }
grazie del vostro tempo.
artemis.alpeia

 scritto nulla. Mi sapete dire cosa c'č di sbagliato in questo script?
Mi č capitato sotto il mouse questo tuo vecchio post.
Hai risolto nulla?
Io ho usato IE5 / N6 e ti posso dire che un errore esce, JavaScript vuole 
un "numero esadecimale", mentre tu adesso gli fornisci una stringa.
Ci ho giocato per 1 ora, non sono riuscito ad ottenere un qualcosa che 
fosse un numero e che fosse anche esadecimale.
Con s=String.fromCharCode(92,117)+s; riesco a passare \uXXXX a 
document.write che pero' non lo interpreta cmq.
Gli unici "attrezzi" candidati sarebbero parseInt() e toString() che 
accettano come parametro una radice (da 2 a 16), ma il primo restituisce 
un _numero_ decimale corrispondente al dato in input convertito secondo 
la radice indicata, ed il secondo restituisce sě un numero nella radice 
indicata, ma sotto forma di stringa... e lo script, che vuole un numero, 
continua a dare errore.
Forse Zer0, Andrea o Marco possono far luce hanno qualche idea?
-- 
Ciao, Riccardo
------------------------------------------------------------------------
http://www.jsdir.com
 ---- Bring Your Site To Life!!!!
------------------------------------------------------------------------
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - D2D006
------------------------------------------------------------------------
 ----> itALY = it <----


Non vedo il vecchio post, non so se nel tuo reply č completo e se ho capito
bene la domanda. Si voleva fare questo?
var a="\\u"+"01";
var b="af";
eval("document.write('"+(a+b)+"')");

 eval("document.write('"+(a+b)+"')");
Si!!!!!
Cribbio avevo messo eval() dapertutto tranne che li!
Segue lo script (ripulito da una 50ina di righe di prove man mano 
commentate :-)) ed alla fine il mex originale sotto forma di commento 
HTML.
Ora però sono curioso di vedere a cosa serviva all'autore del post ^_^
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
</HEAD>
<BODY BGCOLOR="#ffffff">
<SCRIPT>
<!--
var 
hex=['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'];
function hexValue(n)
	{
	var s='';
	var t='';
	while (n>=1)
		{
		s=hex[n%16]+s;
		n=Math.floor(n/16);
		}
	return s;
	}
function toUnicode(n)
	{
	s=new String(hexValue(n));
	while (s.length<4)
		s='0'+s;
	return String.fromCharCode(92,117)+s;
	}
for (var i=30; i<100; i++)
	{  
	eval("document.write('"+toUnicode(i)+"')");
	}
 
//-->
</SCRIPT>
</BODY>
</HTML>
<!-- 
Newsgroups: it.comp.lang.javascript
Date: Sun, 10 Feb 2002 17:39:56 GMT
Subject: scrittura caratteri Unicode
From: "artemis.alpeia" <it.i...@alpeia.artemis>
Salve.
per scrivere un carattere Unicode, basta premettere \u a una stringa
esadecimale di 4 cifre, il codice Unicode del carattere, un numero da 0 a
65535. Fin qui tutto ok- premetto che sto lavorando su IE 5.5
document.write('\u01AF');
tuttavia, se compongo la suddetta stringa dinamicamente, nisba. Non c'è 
modo
di scrivere i caratteri. Non viene visualizzato alcun errore, ma non 
viene
scritto nulla. Mi sapete dire cosa c'è di sbagliato in questo script?
   var
hex=['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'];
   function hexValue(n)
   {  var s='';
      var t='';
      while (n>=1)
      {  s=hex[n%16]+s;
          n=Math.floor(n/16);
      }
      return s;
   }
   function toUnicode(n)
   {  s=new String(hexValue(n));
      while (s.length<4)
         s='0'+s;
      return '\u'+s;
/** ho provato anche '\\u'+s ma così viene scritto letteralmente
   * \u0090 anziché il carattere Unicode voluto
   */
   }
   for (var i=144; i<145; i++)
   {  document.write(toUnicode(i));
   }
grazie del vostro tempo.
artemis.alpeia
 -->


 Ora però sono curioso di vedere a cosa serviva all'autore del post ^_^
Idem :)
-- 
C'ya,
ZER0
  :. job profile - coder.gfxer.webDesigner
"Quanti angeli danzano sulla punta di uno spillo?"

 Hai risolto nulla?
ti ringrazio, avevo già risolto con il metodo statico String.fromCharCode(s)
~~
artemis.alpeia

 Idem :)
LOL niente di particolare =)))), era l'implementazione di una sorta di
"mappa caratteri".
Tuttavia pur funzionando IE mi chiede due o tre volte se desidero
interrompere lo script, e caspita sono su un PIII 500!
Grazie a tutti e buon lavoro
~~
artemis.alpeia

 secondo me.. ;P
Non sai quanto hai ragione :)))
