Comunidad de diseño web y desarrollo en internet online

Escribir un archivo .txt (Unicode) desde PHP

Citar            
MensajeEscrito el 29 Jun 2010 04:26 pm
Tengo una pagina HTML con dos cuadros de texto y un botón. Al darle al botón, gracias a un código php que se encuentra en "pagina2.php" crea un archivo de texto .txt

Pagina HTML:

Código HTML :

<form action="pagina2.php" method="post">
Ingrese su nombre: 
<br><input type="text" name="nombre"> 
<br>Comentarios:
<br><textarea name="comentarios" rows="10" cols="40"></textarea>
<br><input type="submit" value="Registrar">
</form>


Pagina2.php:

Código PHP :

<?php
  $ar=fopen("datos.txt","a") or
    die("Problemas en la creacion");
  fputs($ar,$_REQUEST['nombre']);
  fputs($ar,"\n");
  fputs($ar,$_REQUEST['comentarios']);
  fputs($ar,"\n");
  fputs($ar,"--------------------------------------------------------");
  fputs($ar,"\n");
  fclose($ar);
  echo "Los datos se cargaron correctamente.";
  ?>



Hasta aqui todo bién, el problema está en la codificación.
Cuando guardas un archivo de texto con el bloc de notas, se guarda por defecto con codificación: ANSI, y lo mismo pasa con este codigo php.

Yo necesito que se guarde con codificación: UTF-8 o Unicode.

Como lo puedo hacer?

Gracias.

PD: Esto lo necesito porqué el archivo de texto que crea lo tengo de insertar en un flash con loadvars, y si no está en esta codificación no me acepta los accentos ni las "ñ"

Por netkuup

31 de clabLevel



 

msie8
Citar            
MensajeEscrito el 06 Jul 2010 03:43 pm
Puedes probar en la etiqueta form poner
accept-charset="UTF-8"

Por Sisco

BOFH

3700 de clabLevel

12 tutoriales
4 articulos

Genero:Masculino   Bastard Operators From Hell

Catalunya

firefox
Citar            
MensajeEscrito el 08 Jul 2010 02:05 am
Prueba esto:

Código PHP :

<?php

$texto = "Mi texto en formato UTF-8. Probando acentos: áéíóú";

$ruta = dirname(__FILE__). "/archivo.txt";
file_put_contents($ruta, utf8_encode($texto));

$texto_recuperado = file_get_contents($ruta);

echo utf8_decode($texto_recuperado);



?>


Lo que debes hacer es codificar(utf8_encode) el texto antes de guardar el archivo de texto. Y, necesitaras decodificarlo(utf8_decode) para mostrar el contenido.

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 11 Nov 2010 03:35 pm
no entiendo mucho de php pero ésto es lo que me sirvió a mi.

utf8_encode($texto);

convierto la variable que contiene el texto, antes de grabarlo en el txt.

Por candoti

46 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.