0

データベースのデータから生成しているXMLファイルに問題があります。

UTF-8のエンコードタイプを指定しています。

ブラウザまたはデータベースで表示すると、é文字を表しているように見えるテキストがあります。ただし、メモ帳++でXMLファイルを表示すると、[xE9]と表示されます。

これは私のXMLファイルの上部にある定義です:

<?xml version="1.0" encoding="UTF-8" ?>
<rss version ="2.0" xmlns:g="http://base.google.com/ns/1.0">

これは私のXMLファイルからの抜粋であり、問​​題を引き起こしている文字を示しています。これが以下のように非UTF-8文字として表示される理由については混乱していますが、これが私のXMLが無効である理由です。

<description><![CDATA[work appliqu顤ress. Picco three-quarter sleeved style. Cutwork appliqu顦eatures fitted, with side pockets.]]></description>

私のPHPスクリプトでは、htmlspecialchars関数を使用していますが、この文字を処理していないようです。

<description><![CDATA[<?php echo htmlspecialchars($product['product-description']) ?: 'CRMPicco Online'; ?>]]></description>

残念ながら、ファイルにはこの文字が存在するインスタンスが多数あるため、データベースからその1つの文字を削除することはできません。

これをPHPでクリーンアップできるはずですか?

4

1 に答える 1

0

iconvこれは、PHPの関数を使用して実行できます。

$text = iconv("UTF-8","UTF-8//IGNORE",$text);

これを使用するようにコードを変更しましたが、機能します。

于 2012-05-18T09:05:21.077 に答える