2012-01-19 12 views
6

ho una chatbox che visualizza le chat come questoHTML con caratteri ebraici visualizzazione strano

Nome utente: il mio messaggio chat

USERNAME2: chat messaggio

Ma poi qualcuno registrati con caratteri ebraici sul suo nome utente ora quando invia messaggi sulla nostra chat è visualizzato in modo errato. Sarebbe visualizzare come questo

תירבע: 12345

Nome utente: il mio messaggio chat

USERNAME2: chat messaggio

Ciò avviene solo se si distacca numeri. Esempio HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head><title>Chatbox</title></head> 
<body> 
    <div><span><a target="_BLANK" style="" href="#">&#1514;&#1497;&#1512;&#1489;&#1506;</a>:</span><span>12345</span></div> 
    <div><span><a target="_BLANK" style="" href="#">&#1514;&#1497;&#1512;&#1489;&#1506;</a>:</span><span>this is not numbers so it is displayed correctly</span></div> 
    <div><span><a target="_BLANK" style="" href="#">Username1</a>:</span><span>message1</span></div> 
    <div><span><a target="_BLANK" style="" href="#">Useraname2</a>:</span><span>message2</span></div> 
</body> 
</html> 

E l'uscita di questo è presente

תירבע:12345 
תירבע:this is not numbers so it is displayed correctly 
Username1:message1 
Useraname2:message2 

Come posso farlo visualizzare correttamente in modo che il nome utente dovrebbe comparire prima?

+3

Potrebbe essere perché l'hindi legge da destra a sinistra? Non hai fornito abbastanza HTML/CSS per vedere se c'è una regola che specifica questo. –

+0

Anche io penso che sia la ragione.
il codice html ho postato in grado di replicare il mio problema
'תירבע: 12345'
Tutto quello che voglio è quello di negare l'effetto del hindi in modo che non sarebbe mostra da destra a sinistra. – kuchi

+0

Quindi ... puoi fornire più HTML/CSS? –

risposta

4

Aggiungi questa regola CSS:

span a { 
    unicode-bidi: embed; 
} 
+0

Grazie, ha funzionato! – kuchi

-1

Si dovrebbe cercare il codice della lingua che si desidera utilizzare.

Questo URL potrebbe aiutarti. http://www.w3schools.com/tags/ref_language_codes.asp

+0

L'impostazione della lingua non deve e non ha effetto sulla direzionalità: "Gli agenti utente devono ** non ** utilizzare l'attributo' lang' per determinare la direzionalità del testo. "Http://www.w3.org/TR/html4/ struct/dirlang.html # h-8.2 –

4

Usa, in questo caso,

a { unicode-bidi: embed; } 

In generale, impostare unicode-bidi: embed su qualsiasi elemento che può contenere testo con direzionalità opposta a quella del circostante testo. Sebbene ad es. la semplice incorporazione di parole arabe in testo inglese (o viceversa) di solito non richiede questo (poiché la situazione è gestita dalla direzionalità intrinseca delle lettere), è un'utile precauzione quando cifre, segni di punteggiatura o altri caratteri direzionalmente neutri possono essere coinvolti.

La controparte HTML è <bdo>, ad es. <bdo><a ...>...</a></bdo>, ma è come tale non implementato, quindi è necessario eseguire il backup con a { unicode-bidi: embed; } in CSS e, per coprire le vecchie versioni di IE, document.createElement('bdo') nel codice JavaScript.

L'attributo dir=ltr sull'elemento a potrebbe avere lo stesso effetto, ma si tratta di un bug nei browser. Secondo la specifica HTML 4.01, dovrebbe influire solo sulla direzionalità del testo direzionale neutro (il testo ebraico sicuramente non lo è) e dir=ltr è il valore iniziale.

+0

+1 per chiarimenti – cctan

Problemi correlati