0

私の問題はこれです:私は*でテキストを読もうとしています。php で RTF を使用して mysql のデータベースに値を追加すると、生成されたファイルを開くまですべてがうまくいき、特殊文字がうまく機能していないことがわかります。これが私のコードです。申し訳ありませんが、これは私の最初の投稿であり、適切に設定する方法がわかりません:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title></title>
    </head>
    <body>

<?php
ini_set("default_charset", "utf-8");
mysql_query("SET NAMES 'utf8'");


// Read rtf
$plantilla = file_get_contents('plantilla_titulo.rtf');


// Agregamos los escapes necesarios
$plantilla = addslashes($plantilla);
$plantilla = str_replace('\r','\\r',$plantilla);
$plantilla = str_replace('\t','\\t',$plantilla);

// Data in php to rtf
$nombre = $_POST["nombre"];
$curso = $_POST["curso"];
$fechahoy = date("d-m-Y", time());

//Here I Replace who  shows me for special characters, 
//but it doesn't works, now show me characters like " or +- ...
$plantilla = str_replace("\'d3",'Ó',$plantilla);
$plantilla = str_replace("\'f1",'ñ',$plantilla);
$plantilla = str_replace("\'f3",'ó',$plantilla);
$plantilla = str_replace("\'ed",'í',$plantilla);
$plantilla=utf8_encode($plantilla);


// Procces rtf
eval( '$rtf = <<<EOF_RTF
' . $plantilla . '
EOF_RTF;
' );

//Here i do a var_dump($rtf); and show me special characters. 

// Save rtf
file_put_contents("$nombre-$fechahoy.rtf",$rtf);


echo "<a href=\"$nombre-$fechahoy.rtf\">download</a>";

?>

    </body>
</html>

手動で「デバッグ」を行いましたが、var_dump($rtf); を実行しているため、問題はその行にあります。私にそれを正しく見せてください...私を助けてくれることを願っています、ありがとう!

4

1 に答える 1

0

まず、decode、そしてreplace

$plantilla = utf8_decode($plantilla);
$plantilla = str_replace("\'e1",'á',$plantilla);
$plantilla = str_replace("\'c1",'Á',$plantilla);
$plantilla = str_replace("\'e9",'é',$plantilla);
$plantilla = str_replace("\'c9",'É',$plantilla); 
etc...
// Save rtf, here decode again
$rtf = utf8_decode($rtf);

file_put_contents("$nombre-$fechahoy.rtf",$rtf);
于 2015-04-10T18:53:07.087 に答える