2017-12-31 230 views
0
<li>Jain R.K. and Iyengar S.R.K., “Advanced Engineering Mathematicsâ€, Narosa Publications,</li> 

私はデータベースに生のHTML文字列をたくさん持っています。すべてのテキストにこれらの奇妙な文字があります。どのように私はデータベースに戻ってそれを保存するための通常のテキストに変換することができます。文字列を(ISO-8859-1)文字から通常(UTF-8)文字に変換する方法はありますか?

$final = '<li>Jain R.K. and Iyengar S.R.K., “Advanced Engineering Mathematicsâ€, Narosa Publications,</li>'; 
$final = utf8_encode($final); 

$final = htmlspecialchars_decode($final); 

$final = html_entity_decode($final, ENT_QUOTES, "UTF-8"); 

$final = utf8_decode($final); 

echo $final; 

私は上記のコードを試しましたが、ウェブブラウザでは正しく表示されますが、データベースには同じ奇妙な文字が保存されています。

データベースの文字セットは、UTF-8

答えて

0
$final = '<li>Jain R.K. and Iyengar S.R.K., “Advanced Engineering Mathematicsâ€, Narosa Publications,</li>'; 

$final = str_replace("Â", "", $final); 
$final = str_replace("’", "'", $final); 
$final = str_replace("“", '"', $final); 
$final = str_replace('–', '-', $final); 
$final = str_replace('â€', '"', $final); 

過去のデータについては、私は奇妙な文字をUTF-8文字に置き換えました。

将来のデータ用に、php、html、およびデータベース接続でutf8に文字セットを作成しました。

2

“あるための "文字化け" です。あなたは非ascii引用符を避けることを試みることができるかもしれませんが、それは問題に戻るのを遅らせるだけです。

テーブルと接続にutf8mb4を使用する必要があります。 Mojibakeの可能性のある原因については、thisを参照してください。

関連する問題