Неизвестные символы, такие как â в строке - PullRequest
0 голосов
/ 13 июня 2011

Я получаю неизвестные символы, когда отображаю данные на веб-странице.testing.doc содержит

купить акции "дешево" до остальной части рынка

$data = file_get_contents('testing.doc');

$soap->SetLocalTemplate(
   array(
        'template' => base64_encode($data),
        'format'   => 'doc'
    )
);

$soap->CreateDocument();
        $result = $soap->RetrieveDocument(
            array(
                'format' => 'txt'
            )
        );

$data = $result->RetrieveDocumentResult;
file_put_contents(file.txt', base64_decode($data));

Если я читаю текстовый файл file.txt, я получаю точноетекст, как хранится в testing.doc, но если я сделаю так:

echo base64_decode($data);

Я получу

купить акцию «дешевле» до остальной части рынка

Теперь есть несколько неизвестных персонажей.Подскажите пожалуйста, как решить эту проблему?

Ответы [ 3 ]

3 голосов
/ 13 июня 2011

Похоже, проблема кодировки символов.

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

0 голосов
/ 29 мая 2013

Как уже упоминалось, данные XML имеют кодировку UTF-8.

Для отображения информации в браузере, вы должны установить заголовок, особенно если вы знаете кодировку того, что вы пытаетесь повторить:

header('content-type:text/html;charset=utf8');

Это происходит прямо перед вызовом эха. Например:

/* get content, set it to $content */

header('content-type:text/html;charset=utf8');
echo $content;
0 голосов
/ 13 июня 2011

Ваша страница, вероятно, обрабатывается в кодировке ISO-8859-1, но данные XML представлены в формате UTF-8.

Либо измените выходную кодировку на UTF-8, либо используйте iconv() для преобразования ее в ISO-8859-1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...