Акцентные символы приводят к сбою автономного интерпретатора PHP


У меня есть PHP-скрипт, который запускается через командную строку и автономный интерпретатор PHP. Скрипт выводит много html-кода в CSV-файл, который позже загружается на сайт WP.

Акцентные символы, похоже, приводят к сбою интерпретатора. пример:

$output = "Não encontrou o que você está procurando?";  
$english = "Did not find what you're looking for?";

Всякий раз, когда я пытаюсь манипулировать строкой $output, в CSV-файл ничего не выводится, но если вместо этого я использую перевод $english, все работает отлично.

Я уверен, что это как-то связано с переводчиком не используется кодировка UTF-8, но я не могу понять, как это исправить.

Я пробовал:

  1. Отдельный PHP.INI-файл с: default_charset = utf-8
  2. Первая строка сценария: ini_set('default_charset', 'UTF-8');
  3. Убедился, что мой редактор кода (контекст) сохранялся в формате юникода.
  4. Погуглил все, что я мог придумать за последний час

Я знаю, что мог бы разбить строку на ее html-сущности (ã= ã), но я бы предпочел этого не делать, потому что их будет много из этих строк, и некоторые из них будут время от времени меняться.

Есть ли какое-либо другое решение для того, чтобы заставить интерпретатор PHP анализировать символы с ударением, не взрываясь?

Author: ThinkingStiff, 2012-08-31

1 answers

Я нигде не использовал utf8_encode(). Как только я добавил это, все сработало отлично.

$output = "Não encontrou o que você está procurando?";  
$output = utf8_encode($output); // THIS FIXED IT  
$english = "Did not find what you're looking for?";
 2
Author: syndicate_software, 2012-09-26 13:15:33