2009-09-23 2 views
0

У меня есть страница HTML/PHP5 с формой, а затем, когда она отправляется, она создает XML-файл с вводом формы в качестве данных.PHP DOMDocument с åäö (UTF-8)

Но все åäö выглядит, если бы я использовал utf8_encode() на них. Я не могу utf8_decode() их, потому что тогда «служба» отправляю файлы XML, жалуется, что это не UTF-8 (как и должно).

Parser не удалось. Причина: 2: ошибка парсера: вход не соответствует UTF-8, укажите кодировку! Б 0xE5 0x73 0x61 0x2E

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
    <head> 
     <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
     <title>Blabla></title> 
    </head> 

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<name>åäö</name> 

Я попытался м b_convert_encoding(), отправляя данные в CDATA с htmlentities() вместо этого и изменил default_charset = "utf-8" в php.ini, но ничего не работает, как это предполагается.

Что мне делать?

ответ

0

В DOMDocument ничего плохого не было, я просто забыл указать UTF-8 в htmlentities(), когда я вывел результат.

+0

Если ваши данные UTF-8, почему бы вам не использовать UTF-8 для вывода? – Gumbo

+0

Я сделал это, но я пропустил, что стандартная кодировка для метода htmlentities() - это ISO-8859-1, а затем, когда я использовал htmlentities() в своих данных UTF-8, он превратил мою åäö в à ¥ äö. Причина, по которой я использую htmlentities() для данных, - показать ее на веб-странице с помощью <>. –