このサイトで検索したところ、多くの回答がありましたが、どれもうまくいきませんでした。PHP simplexml_load_string を使用して以下の XML を解析しようとしています。
私のXMLは次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<address>
<name>Peter</name>
<country>Großbritannien</country>
</address>
print_r を使用して印刷すると、結果は次のようになります。
SimpleXMLElement Object
(
[name] => Peter
[country] => Großbritannien
)
ini_set('default_charset', 'UTF-8') または header('Content-Type: text/html; charset=utf-8') を使用すると、結果は次のようになります。
SimpleXMLElement Object
(
[name] => Peter
[country] => Großbritannien
)
しかし、データベース (MySQL) に PHP (ヘッダーを utf8 に設定) を使用して国の値を挿入しようとすると、Großbritannien として挿入されます。私のテーブルの文字セットはUTF8で、列の照合はutf8_unicode_ciです。ただし、国の値を(phpMyAdminまたはターミナルを使用して)テーブルに直接挿入すると、適切に挿入されます。
PHP 解析ページから国の値が正しく挿入されない理由を知りたいです。
私のPHPサンプルコードは以下の通りです:
$notificationXml = simplexml_load_string($xml);
$con = $notificationXml->country;
mysql_query("INSERT INTO test_1 (con) values ('$con')");
私を助けてください。よろしくお願いします。