![Печать иностранного текста для PHP на UBUNTU и CENTOS](https://rvso.com/image/515018/%D0%9F%D0%B5%D1%87%D0%B0%D1%82%D1%8C%20%D0%B8%D0%BD%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%B0%20%D0%B4%D0%BB%D1%8F%20PHP%20%D0%BD%D0%B0%20UBUNTU%20%D0%B8%20CENTOS.png)
Я использую domdocuments и такие вещи, как $div->nodeValue, чтобы получить определенную информацию с веб-страницы.
На моей машине с Ubuntu при выполнении команды php crawl.php все отображается правильно на китайском языке (страница в кодировке UTF-8).
Однако на моей машине CENTOS, использующей тот же код, я получаю æ´å¤åå¸ при печати в терминале. А когда я сохраняю его в базе данных, символы также искажаются.
Я заметил, что когда я печатаю $content, обе системы отображают его правильно.
решение1
Проверьте набор символов и параметры сортировки соединения с MySQL. Пока вы вставляете содержимое полученных данных, Mysql должен знать, какой набор символов и параметры сортировки будут использоваться для хранения данных. Добавьте приведенные ниже строки в свой PHP-скрипт. Таким образом, ваш код будет работать намного стабильнее на разных ОС и в разных конфигурациях.
` $dbcharset='utf8'; $dbcollation='utf8_general_ci'; mysql_query('SET НАБОР СИМВОЛОВ '.$dbcharset); mysql_query("НАБОР ИМЕН '".$dbcharset."' СОРТИРОВАТЬ '".$dbcollation."'"); `