Foros del Web » Programando para Internet » PHP »

dudas con utf8

Estas en el tema de dudas con utf8 en el foro de PHP en Foros del Web. hola a todos... necesito hacer un proyecto en varios idiomas en el cual entrará el chino... en todos mis proyectos siempre he usado el charset-iso-8859-1, ...
  #1 (permalink)  
Antiguo 26/09/2008, 15:27
 
Fecha de Ingreso: enero-2008
Mensajes: 115
Antigüedad: 16 años, 3 meses
Puntos: 1
dudas con utf8

hola a todos... necesito hacer un proyecto en varios idiomas en el cual entrará el chino...
en todos mis proyectos siempre he usado el charset-iso-8859-1, es decir... en los html y en todo... lo paso con AddCharset en el htaccess... etc...

pero ahora leyendo... he visto q se debería usar mejor UTF8... sobre todo para proyectos como el que tengo que hacer... con el idioma chino... ya que hay que guardar info en la base de datos...

en fin.... cuando trabaja con iso... todos los datos que guardaba en la base de datos antes de hacerlo usaba esta pequeña clase que hice:
Código:
<?
	class String
	{
		public static function entities_parser($string)
		{
			$parser_string = htmlentities($string);
			$replace = array	(
																				'&amp;' => '&',
																				'"' => '&quot;',
																				'“' => '“',
																				'”' => '”',
																				'‘' => '‘',
																				'’' => '’',
																				"'" => ''',
																				'$' => '$',													
														);
				
				foreach($replace as $key=>$value)
				{
					$parser_string = str_replace($key, $value, $parser_string);
				}
				
				return $parser_string;
		}
		
		public static function entities_decode($string)
		{
			$parser_string = html_entity_decode($string);
			$replace = array	(
																	'"' => '&quot;',
																	'“' => '“',
																	'”' => '”',
																	'‘' => '‘',
																	'’' => '’',
																	"'" => ''',
																	'$' => '$',
																	chr(13).chr(10) => '<br />',
														);
														
				foreach($replace as $key=>$value)
				{
					$parser_string = str_replace($value, $key, $parser_string);
				}
				
				return $parser_string;
		}
	}
?>
En fin esto lo usaba para botar comillas y otros codigos raros...

en fin... ahora que quiero usar utf8... que métodos debería usar... para tratar la data... podría seguir usar mi clase ???... o ya no ??... sé también que debería cambiar el charset de la base de datos...

que me recomiendan...

saludos!

PD: Cuando grabé mi clase y lo puse en el código del POST no se ven bien algunos caracteres porque parece que automaticamente lo convierte.... lo que hace mi codigo es convertir una comilla u otros caracteres en su equivalente HTML

Última edición por turbex; 26/09/2008 a las 15:35 Razón: No sé ven bien algunos códigos
  #2 (permalink)  
Antiguo 26/09/2008, 18:36
Avatar de pablinff  
Fecha de Ingreso: diciembre-2005
Ubicación: Argentina
Mensajes: 383
Antigüedad: 18 años, 4 meses
Puntos: 7
Respuesta: dudas con utf8

Prueba pasarle a tu htmlentities() un tercer argumento con el charset, así:
htmlentities($string, null, "UTF-8");

Cualquier cosa comenta como te fué.

Saludos!
__________________
I'm gonna start a revolution from my bed...
  #3 (permalink)  
Antiguo 26/09/2008, 18:54
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Respuesta: dudas con utf8

Para la base de datos podés usar utf8_unicode_ci.

Recordá que para no tener inconvenientes todo debe estar en UTF-8, es decir.. el charset de tus paginas html, todos los archivos y la base de datos.

Si utilizas un editor como Notepad++, en la pestaña formato puedes convertir los archivos a utf-8.
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #4 (permalink)  
Antiguo 28/09/2008, 00:35
 
Fecha de Ingreso: enero-2008
Mensajes: 115
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: dudas con utf8

probé el código... del htmlentities... pero no me funciona... hice un pequeño archivito para probarlo con el siguiente codigo
Código PHP:
<?
    $str 
"Hola a todos 'a' cómo están";
    
$str htmlentities($strENT_QUOTES'utf-8');
    
    echo 
$str;
?>
y lo q pasa es q el documento no imprime absolumente nada...

asi q lo q hice fue abrir el php con el NOTEPAD de windows.... y lo cambie de ANSI a UTF8... mi pregunta es.... yo realmente uso el Dreamweaver... tendré que cambiar todos los archivos que uso y guardarlos uno por uno en UTF8???... librerías... helpers... archivos de configuración... etc ???

el dreamweaver CS3 puede guardar archivos como UTF8 ??

O existe algún otro que no sea el NOTEPAD++ que haga esto ??
  #5 (permalink)  
Antiguo 28/09/2008, 22:48
 
Fecha de Ingreso: junio-2008
Mensajes: 71
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: dudas con utf8

Cita:
Iniciado por pablinff Ver Mensaje
Prueba pasarle a tu htmlentities() un tercer argumento con el charset, así:
htmlentities($string, null, "UTF-8");

Cualquier cosa comenta como te fué.

Saludos!
Gracias, esto me ha servido "a medias".

Por desgracia tengo unos archivos con muchos caracteres raros y hacer un cambio manual sería un infierno, y me gusta tener todo en UTF-8.

Me tradujo mucho, pero en otros tantos no hizo nada, y me suena que esos caracteres no son corresponden a UTF-8.

Como por ejemplo:

Ę ę Ě ě Ĝ ĝ Ğ ğ Ġ ġ Ģ ģ Ĥ ĥ Ħ ħ Ĩ ĩ Ī ī Ĭ ĭ Į į İ ı IJ ij Ĵ Ї Ј Љ Њ Ћ Ќ Ў Џ А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т УФ Х Ц Ч Ш Щ Ъ Ы Ь Э ф й ů х ц ч ш щъ ы ь э ю я ё ђ ѓ є ѕ і јј љ њ ћ خ د ذ ر ز س شص ض ط ظ ع غ ـ ف ق ك א ב ג דה ו ז ח י ך כ ל ם מ ן נ ס ע ף פץ צ ק ר ש ת װױ ײ ׳ ״ ، ب ة ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ـ ف ق ك ل م ن ه و

Por solo poner algunos.

No se si he hecho algo mal

Cita:
Iniciado por Fridureiks Ver Mensaje
....
Si utilizas un editor como Notepad++, en la pestaña formato puedes convertir los archivos a utf-8.
Eso lo he escuchado varias veces, que con el Notepad++ se puede. Por lo menos en tu post es primera vez que veo "la ruta" para hacerlo, pero la cuestión es que eso no me ha servido, simplemente no hace nada.

¿hay que tener instalado un "complemento" para que funcione?

Con tus instrucciones por lo menos ya no me queda duda de que si había estado probando en el sitio que creía.

Muchas gracias.
  #6 (permalink)  
Antiguo 29/09/2008, 00:03
Avatar de pablinff  
Fecha de Ingreso: diciembre-2005
Ubicación: Argentina
Mensajes: 383
Antigüedad: 18 años, 4 meses
Puntos: 7
Respuesta: dudas con utf8

Cita:
Iniciado por SebasSebas Ver Mensaje
Gracias, esto me ha servido "a medias".

Por desgracia tengo unos archivos con muchos caracteres raros y hacer un cambio manual sería un infierno, y me gusta tener todo en UTF-8.

Me tradujo mucho, pero en otros tantos no hizo nada, y me suena que esos caracteres no son corresponden a UTF-8.

Como por ejemplo:

Ę ę Ě ě Ĝ ĝ Ğ ğ Ġ ġ Ģ ģ Ĥ ĥ Ħ ħ Ĩ ĩ Ī ī Ĭ ĭ Į į İ ı IJ ij Ĵ Ї Ј Љ Њ Ћ Ќ Ў Џ А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т УФ Х Ц Ч Ш Щ Ъ Ы Ь Э ф й ů х ц ч ш щъ ы ь э ю я ё ђ ѓ є ѕ і јј љ њ ћ خ د ذ ر ز س شص ض ط ظ ع غ ـ ف ق ك א ב ג דה ו ז ח י ך כ ל ם מ ן נ ס ע ף פץ צ ק ר ש ת װױ ײ ׳ ״ ، ب ة ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ـ ف ق ك ل م ن ه و

Por solo poner algunos.

No se si he hecho algo mal



Eso lo he escuchado varias veces, que con el Notepad++ se puede. Por lo menos en tu post es primera vez que veo "la ruta" para hacerlo, pero la cuestión es que eso no me ha servido, simplemente no hace nada.

¿hay que tener instalado un "complemento" para que funcione?

Con tus instrucciones por lo menos ya no me queda duda de que si había estado probando en el sitio que creía.

Muchas gracias.
La verdad es que se muy poco al respecto de que juego de caracteres cumplen con tal norma, eso tendrías que averiguarlo bien, pero porque no pruebas con utf-16?

Saludos!
__________________
I'm gonna start a revolution from my bed...
  #7 (permalink)  
Antiguo 29/09/2008, 09:51
 
Fecha de Ingreso: enero-2008
Mensajes: 115
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: dudas con utf8

bueno yo aún sigo sin resolver mi inconveniente... como les comentaba... necesito poder guardar caracteres chinos...
necesito poder guardar cualquier caracter... en cualquier idioma.... sin q esto afecte mi aplicación... sin alguien sabe más al respecto, espero pueda darme una mano
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:04.