2012-01-19 12 views
6

tengo una ventana de chat que muestra los chats como estoHTML con caracteres hebreos mostrando raro

Nombre de usuario: mi mensaje de chat

USERNAME2: mensaje de chat

Pero entonces alguien registrado con caracteres hebreos en su nombre de usuario ahora cuando publica en nuestro chatbox se muestra incorrectamente. Sería mostrar como esto

תירבע: 12345

Nombre de usuario: mi mensaje de chat

USERNAME2: mensaje de chat

Esto sólo ocurre si se publica números. HTML de ejemplo

<!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> 

Y la salida de ello es este

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

¿Cómo puedo hacer que se muestra correctamente para que el nombre de usuario debe aparecer en primer lugar?

+3

¿Podría ser porque el hindi se lee de derecha a izquierda? No proporcionó suficiente HTML/CSS para ver si hay una regla que especifique esto. –

+0

También creo que esa es la razón.
El código HTML que he publicado se puede replicar mi problema
'תירבע: 12345'
único que quiero es para negar el efecto del hindi para que no lo haría mostrar de derecha a izquierda. – kuchi

+0

Entonces ... ¿puedes proporcionar más HTML/CSS? –

Respuesta

4

Añadir esta regla CSS:

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

¡Gracias, funcionó! – kuchi

-1

Debe buscar el código del idioma que desea utilizar.

Esta URL podría ayudarlo. http://www.w3schools.com/tags/ref_language_codes.asp

+0

La configuración del idioma no debe tener ni tiene un efecto sobre la direccionalidad: "Los agentes del usuario ** no ** deben usar el atributo' lang' para determinar la direccionalidad del texto. "Http://www.w3.org/TR/html4/ struct/dirlang.html # h-8.2 –

4

uso, en este caso,

a { unicode-bidi: embed; } 

En general, establezca unicode-bidi: embed en cualquier elemento que pueda contener texto con direccionalidad opuesta a la de los alrededores texto. Aunque v.g. la incrustación simple de palabras árabes en el texto en inglés (o viceversa) no suele requerir esto (dado que la situación es manejada por la direccionalidad inherente de las letras), es una precaución útil cuando los dígitos, signos de puntuación u otros caracteres direccionales neutrales pueden ser involucrado.

La contraparte HTML es <bdo>, p. <bdo><a ...>...</a></bdo>, pero como tal no se implementó, por lo que necesitaría respaldarlo con a { unicode-bidi: embed; } en CSS y, para cubrir versiones anteriores de IE, document.createElement('bdo') en código JavaScript.

El atributo dir=ltr en el elemento a puede tener el mismo efecto, pero esto es un error en los navegadores. Según la especificación HTML 4.01, solo debería afectar la direccionalidad del texto direccionalmente neutro (el texto hebreo seguramente no lo es), y dir=ltr es el valor inicial.

+0

+1 para aclaración – cctan

Cuestiones relacionadas