![UBUNTU および CENTOS 上の PHP で外国語テキストを印刷する](https://rvso.com/image/515018/UBUNTU%20%E3%81%8A%E3%82%88%E3%81%B3%20CENTOS%20%E4%B8%8A%E3%81%AE%20PHP%20%E3%81%A7%E5%A4%96%E5%9B%BD%E8%AA%9E%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%92%E5%8D%B0%E5%88%B7%E3%81%99%E3%82%8B.png)
私は domdocuments を使用し、$div->nodeValue などを使用して Web ページから特定の情報を取得しています。
私の Ubuntu マシンで php crawl.php を実行すると、すべてが中国語で適切に表示されます (ページは UTF-8 です)。
しかし、同じコードを使用している私の CENTOS マシンでは、ターミナルで印刷すると æ´å¤åå¸ が表示されます。また、データベースに保存すると、文字も乱れます。
私が気づいたことの 1 つは、$content を印刷すると、両方のシステムで適切に表示されることです。
答え1
MySQL 接続の文字セットと照合順序を確認してください。取得したデータの内容を挿入するときに、Mysql はデータの保存に使用される文字セットと照合順序を認識している必要があります。以下の行を PHP スクリプトに追加します。この方法により、コードはさまざまな OS や構成でより安定して動作します。
` utf8 文字セット $db照合順序='utf8_general_ci'; mysql_query('SET CHARACTER SET '.$dbcharset); mysql_query("名前の設定 '".$dbcharset."' 照合 '".$dbcollation."'"); `