の問題、長いダッシュなどPHP MySQLのエンコーディング私は弾丸のような特殊文字が含まれているサードパーティ製のXMLを扱っていますXML
サンプルXML:
$xml = "<xml><node>• Special Characters</node></xml>";
私の目標は、このXMLを解析することですPHPを使用してMySQLデータベースに挿入します。私はsimplexml_import_dom
を使用してDOMノードからSimpleXMLElement
オブジェクトを取得するためにXMLを解析するためにDomDocument
を使用しています。
xmlをエンコードするためにutf8_encodeを使用しない限り、ロード方法DomDocument
は失敗します。
$doc = new DOMDocument();
$doc->loadXML(utf8_encode($xml));
XMLを解析することができるようにするため、私はutf8_encode
機能が必要であることを理解しています。 XMLを解析できるようになると、MySQLテーブルの挿入によって特殊文字が?またはごみ。解析後にブラウザに表示されたXMLからの特殊文字さえもゴミになります。
MySQLテーブルの列はテキストデータ型で、latin1_swedish_ciの照合順序です。私はSOに関する同様の質問を見て、mysql_query('SET NAMES utf8')
を実行するか、列エンコーディングを変更するなどのソリューションを試しましたが、それらは私のためには機能しませんでした。
お知らせください。
を試みることができますか? –
xmlのエンコーディングについてご存知ですか? あなたのテーブルはutf8でもなければなりません。 – haltabush
DBの照合順序を 'utf8_general_ci'などに設定しようとしましたか? – hohner